соответствие символов Юникода в регулярных выражениях Python

Я прочитал другие вопросы на Stackoverflow, но все еще не ближе. Извините, если на это уже есть ответ, но я не получил ничего из предложенного здесь для работы.

>>> import re
>>> m = re.match(r'^/by_tag/(?P<tag>\w+)/(?P<filename>(\w|[.,!#%{}()@])+)$', '/by_tag/xmas/xmas1.jpg')
>>> print m.groupdict()
{'tag': 'xmas', 'filename': 'xmas1.jpg'}

Все хорошо, тогда я пробую что-то с норвежскими символами в нем (или что-то более юникодоподобное):

>>> m = re.match(r'^/by_tag/(?P<tag>\w+)/(?P<filename>(\w|[.,!#%{}()@])+)$', '/by_tag/påske/øyfjell.jpg')
>>> print m.groupdict()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groupdict'

Как можно Я использую типичные символы Юникода, например øæå? Я хотел бы иметь возможность сопоставить эти символы как в группе тегов выше, так и в группе для имени файла.

26
задан tchrist 29 March 2012 в 18:58
поделиться