#python #регулярные_выражения #кодировка #unicode #python_27
Python 2.7.6
проблема с применением re к строке на русском.
задача - найти три буквенно-цифровых символа с последующей точкой;
код:
#!/usr/bin/python
# -*- coding: utf-8 *-*
import re
new = re.findall("\w{3}\.", "gth. Ср. дек. 7 21:22:29 EET 2016" )
print new
результат >> ['gth.']
вопрос: почему игнорируется 'дек.'?
Ответы
Ответ 1
Используйте Unicode-строки и флаг re.UNICODE: #!/usr/bin/env python2 # -*- coding: utf-8 *-* import re pattern = re.compile(ur"\w{3}\.", re.UNICODE) match = pattern.findall(u"gth. Ср. дек. 7 21:22:29 EET 2016") print(match) for i in match: print(i) Результат: [u'gth.', u'\u0434\u0435\u043a.'] gth. дек.
Комментариев нет:
Отправить комментарий