正则表达式中的"(?u)"是什么意思?

27

我研究了scikit-learn中tokenization的实现方式,并发现了这个正则表达式(源代码):

token_pattern = r"(?u)\b\w\w+\b"
正则表达式很简单,但我以前从未见过 (?u) 这部分。有人可以解释一下这部分的作用吗?

正则表达式很简单,但我以前从未见过(?u)这部分。请问这部分是做什么用的?


7
等价于 re.U 标志。 - vaultah
看起来相当特定于Python。 - Wiktor Stribiżew
2
@sln:您能详细说明一下吗? - fwind
1个回答

40

它为此表达式打开了re.U (re.UNICODE)标志

模块文档中得知:

(?iLmsux)

(来自集合'i''L''m''s''u''x' 中的一个或多个字母。)该分组匹配空字符串;这些字母设置相应的标志:re.I (忽略大小写),re.L (区域相关),re.M (多行),re.S (点匹配所有),re.U (Unicode相关),以及 re.X (详细模式),适用于整个正则表达式。 (这些标志在模块内容中有描述。)这很有用,如果您希望将标志包含在正则表达式中,而不是将标志参数传递给 re.compile() 函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接