正则表达式 - 特殊字母字符? - Python

时间:2010-03-09 19:04:50

标签: python regex ascii

我有一个简单名称列表,例如Márquez

因为á (?< name >[a-zA-Z]+)似乎无法正常工作!

非常感谢帮助!

2 个答案:

答案 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是更好的方法,但它需要解码数据并将其编码为本地编码。