我有一个简单名称列表,例如Márquez
,
因为á
(?< name >[a-zA-Z]+)
似乎无法正常工作!
非常感谢帮助!
答案 0 :(得分:3)
你可以使用
\w+
带有unicode标志。我假设你的名字中没有数字或下划线的风险。
>>> re.findall('\w+', 'Márquez', re.U)
['Márquez']
问号后面似乎也遗漏了P
:(?P< name >[a-zA-Z]+)
答案 1 :(得分:0)
对于Python&lt; 3您可能想要启用区域设置:
import locale
locale.setlocale(locale.LC_ALL, '')
然后在正则表达式中使用re.LOCALE
选项:
re.findall('\w+', 'Márquez', re.LOCALE)
虽然,可能Unicode是更好的方法,但它需要解码数据并将其编码为本地编码。