正则表达式中"(?u)"的作用是什么?

fwi*_*ind 13 python regex

我研究了如何在scikit-learn中实现标记化并找到了这个正则表达式(源代码):

token_pattern = r"(?u)\b\w\w+\b"
Run Code Online (Sandbox Code Playgroud)

正则表达式非常简单,但我以前从未见过这(?u)部分.有人能解释一下这部分是做什么的吗?

Mar*_*ers 19

它会打开此表达式的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()函数,这将非常有用.