我正在尝试使用re模块验证名称字段。
\w
无法匹配非ASCII字符,例如à
。
在许多其他正则表达式引擎中,解决方案似乎是\p{L}
,但是似乎Python不支持这一点。有什么合适的替代方法吗?
更新:
与此主题相关的其他问题不同,因为我正在寻找Unicode替代\w
,而不是使用默认的re.UNICODE
标志获得的替代(因为此标志还使\w
匹配数字和下划线)。
我正在尝试使用re模块验证名称字段。
\w
无法匹配非ASCII字符,例如à
。
在许多其他正则表达式引擎中,解决方案似乎是\p{L}
,但是似乎Python不支持这一点。有什么合适的替代方法吗?
更新:
与此主题相关的其他问题不同,因为我正在寻找Unicode替代\w
,而不是使用默认的re.UNICODE
标志获得的替代(因为此标志还使\w
匹配数字和下划线)。
regexRef = re.compile("\w", re.UNICODE)
看看这是否有助于匹配那些非ASCII字符。
[^\d\s_]
是否符合您的要求?
[^\W0-9_]
在使用 re.UNICODE
时对我有效。
将 Unicode 字符串传递给 re
模块并启用 re.UNICODE
标志,例如:
# -*- coding: utf-8 -*-
import re
print(re.findall(ur"\w+", ur"\w does match à.", flags=re.UNICODE))
re.<function>
都有一个flags
参数。 - dmg