Страницы

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

понедельник, 24 декабря 2018 г.

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

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.'] вопрос: почему игнорируется 'дек.'?


Ответ

Используйте 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. дек.

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

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