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