#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. дек.
Комментариев нет:
Отправить комментарий