什么"(?u)"做正则表达式?

时间:2016-01-27 16:40:49

标签: python regex

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

token_pattern = r"(?u)\b\w\w+\b"

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

1 个答案:

答案 0 :(得分:18)

它会为此表达式打开re.U (re.UNICODE) flag

来自module documentation

  

(?iLmsux)

     

(集'i''L''m''s''u''x'中的一个或多个字母。)匹配空字符串;这些字母设置了相应的标志:re.I(忽略大小写),re.L(依赖于语言环境),re.M(多行),re.S(点匹配全部),{对于整个正则表达式,{1}}(取决于Unicode)和re.U(详细)。 (标志在模块内容中描述。)如果您希望将标志包含在正则表达式的一部分中,而不是将标志参数传递给re.X函数,这将非常有用。