为什么下划线不能与'\ W'匹配?


问题内容

我知道,其他任何标点符号都_无法与之匹敌\W。随着文档状态:\w是一组字母数字字符 所述 下划线

与此同时:

在此处输入图片说明

我一直对此感到困惑,但从未真正质疑为什么。

它与_Python中扮演的特殊角色有关吗?


问题答案:

模块中许多Python的正则表达式语法re都来自Perl,这sed和的影响awk。将\w来自那里,有着悠久的历史。


在原来的regex模块(这是在Python 1.5弃用),\w没有 包括_,如从明显的Python
1.4文档

\w

匹配任何字母数字字符;这等效于设置[a-zA-Z0-9]


PS虽然不是很方便,但是可以将所有非\w+_与字符类匹配[\W_]