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