正则表达式 - 特殊字母字符? - Python
我有一串简单的名字,比如 Márquez
,
但是因为 á
这个字符,(?< name >[a-zA-Z]+)
似乎不太管用!
如果能帮忙就太感谢了!
2 个回答
0
对于Python 3之前的版本,你可能需要启用地区设置:
import locale
locale.setlocale(locale.LC_ALL, '')
然后在你的正则表达式中使用 re.LOCALE
选项:
re.findall('\w+', 'Márquez', re.LOCALE)
不过,使用Unicode可能是更好的选择,尽管这需要将数据从本地编码解码,并重新编码回去。
3
你可以使用
\w+
并加上unicode标志。我想你的名字里应该没有数字或者下划线的风险。
>>> re.findall('\w+', 'Márquez', re.U)
['Márquez']
你似乎在问号后面漏掉了一个P
:(?P< name >[a-zA-Z]+)