Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

регулярное выражение (re) для строки на русском языке: найти три буквенно-цифровых символа с последующей точкой

#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. дек.

Комментариев нет:

Отправить комментарий