2

长话短说:

>>> re.compile(r"\w*").match(u"Français")
<_sre.SRE_Match object at 0x1004246b0>
>>> re.compile(r"^\w*$").match(u"Français")
>>> re.compile(r"^\w*$").match(u"Franais")
<_sre.SRE_Match object at 0x100424780>
>>> 

为什么它与正则表达式中的 unicode 字符不匹配^字符串$?据我了解^,代表字符串(行)的开头和$- 代表它的结尾。

4

1 回答 1

5

需要指定UNICODEflag,否则\w就相当于[a-zA-Z0-9_]不包含' ç''的标志。

>>> re.compile(r"^\w*$", re.U).match(u"Fran\xe7ais")
<_sre.SRE_Match object at 0x101474168>
于 2010-08-31T08:36:54.193 回答