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

min*_*als 6 python regex

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

同时:

在此输入图像描述

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

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

Ant*_*ala 5

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


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

\w

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


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