在perl
编程中,\w
是一种正则表达式。
我想知道的是它是如何匹配的?是否匹配字符或单词,同样的问题\w+
?
答案 0 :(得分:7)
可以说是等同于角色类[A-Za-z0-9_]
。值得指出的是,它将匹配字符类中指定范围内的任何1个字符。
由于运算符+
用于表示1次或更多次,\w+
表示前面提到的范围内的任何字符,至少一次。
因此,\w+
可以匹配单个字符(字母,数字或下划线),一个包含任何字母,数字和/或下划线的单词。
如果你想严格对待\w
,它会匹配这些字符(也许更多)。下面的图片可以在我上面发布的链接中找到。
答案 1 :(得分:7)
\w
表示“任何字母,数字或下划线”。
许多人认为它等同于[a-zA-Z0-9_]
,但不是。这是一个字母或数字的每个Unicode字符,包括非拉丁字符,如中文,阿拉伯语等。
答案 2 :(得分:1)
\w
是字符类,表示任何字母数字符号,即表示\w
等于[a-zA-Z0-9_]
组合。 +
是量词,这意味着重复至少一次符号(或组)之前的符号(或组)。另请注意,\W
(大写)是\w
(小写)的否定形式,这意味着 all,除了来自字母数字类的任何符号,即这意味着{{1 }}
[^a-zA-Z0-9_]
是字符类,即\s
[ \t\n\r\f\v]
是否定形式:\S
<强>量词:强>
[^ \t\n\r\f\v]
表示重复多次或一次
+
表示重复多少(甚至零次)
*
表示只重复一次或零