Regex - специальные буквы? - питон - PullRequest
1 голос
/ 09 марта 2010

У меня есть список простых имен, таких как Márquez,

из-за á (?< name >[a-zA-Z]+), похоже, не работает!

Помощь будет очень цениться!

Ответы [ 2 ]

3 голосов
/ 09 марта 2010

вы можете использовать

\w+

с флагом Юникода. Я предполагаю, что нет никакого риска иметь цифры или подчеркивание в ваших именах.

>>> re.findall('\w+', 'Márquez', re.U)
['Márquez']

Вы также, кажется, пропустили P после знака вопроса: (?P< name >[a-zA-Z]+)

0 голосов
/ 09 марта 2010

Для Python <3 вы можете включить локаль: </p>

import locale
locale.setlocale(locale.LC_ALL, '')

А затем используйте параметр re.LOCALE с вашими регулярными выражениями:

re.findall('\w+', 'Márquez', re.LOCALE)

Хотя, возможно, лучше использовать Unicode, хотя он требует декодирования данных и их кодирования в локальную кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...