Найти - Пользователи
Полная версия: re заменяет непонятными символами
Начало » Python для новичков » re заменяет непонятными символами
1
LSN
Здравствуйте!

у меня такая ситуация, я пишу:
import re
f = open('C:\Python26\example.txt')
text = f.read()
p = re.compile('(\s)+([\.,:!?;])')
new = p.sub('\2', text)
а в итоге вместо знаков препинания в переменную new попадают непонятные символы

если ставлю так:
 
p = re.compile('\s+([\.,:!?;])')
new = p.sub('\1', text)
то вообще все знаки препинания стераются.

В чем моя ошибка, подскажите пожалуйста?
Ed
Попробуйте так:
new = p.sub(r'\2', text)
LSN
Ed, спасибо. так сработало. А вы не могли бы объяснить, что означает r ? я в документации видел такое в примерах, а описания не могу найти, вроде это не модификатор…
Ed
Читайте здесь: http://docs.python.org/reference/lexical_analysis.html#literals
Вкратце это означает ‘raw string’, в ней питон ничего трогать не будет. А если без r, то он будет стараться обработать escape последовательности \n \r \t \цифра и т.д.
LSN
Ed, спасибо. теперь понял.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB