它是如何工作的?

时间:2013-08-13 09:21:13

标签: regex perl

perl编程中,\w是一种正则表达式。

我想知道的是它是如何匹配的?是否匹配字符或单词,同样的问题\w+

3 个答案:

答案 0 :(得分:7)

\wshorthand character class

可以说是等同于角色类[A-Za-z0-9_]。值得指出的是,它将匹配字符类中指定范围内的任何1个字符。

由于运算符+用于表示1次或更多次,\w+表示前面提到的范围内的任何字符,至少一次。

因此,\w+可以匹配单个字符(字母,数字或下划线),一个包含任何字母,数字和/或下划线的单词。

如果你想严格对待\w,它会匹配这些字符(也许更多)。下面的图片可以在我上面发布的链接中找到。

enter image description here

答案 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]表示重复多次或一次

+表示重复多少(甚至零次)

*表示只重复一次或零