Модуль Python re
пока не поддерживает свойства Unicode. Но вы можете скомпилировать свое регулярное выражение, используя флаг re.UNICODE
, и тогда сокращение класса символов \w
также будет соответствовать буквам Юникода.
Так как \w
также будет соответствовать цифрам, вам необходимо вычесть их из вашего класса персонажей вместе с подчеркиванием:
[^\W\d_]
будет соответствовать любой букве Unicode.
>>> import re
>>> r = re.compile(r'[^\W\d_]', re.U)
>>> r.match('x')
<_sre.SRE_Match object at 0x0000000001DBCF38>
>>> r.match(u'é')
<_sre.SRE_Match object at 0x0000000002253030>