0

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

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

4

3 回答 3

7

\w是一个速记字符类

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

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

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

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

在此处输入图像描述

于 2013-08-13T09:24:11.820 回答
7

\w表示“任何字母、数字或下划线”。

许多人认为它等同于[a-zA-Z0-9_],但事实并非如此。就像每个 Unicode 字符一样,它是一个字母或数字,包括非拉丁字符,如中文、阿拉伯文等。

于 2013-08-13T09:30:28.333 回答
1

\w是代表任何字母数字符号的字符类,即表示\w等于[a-zA-Z0-9_]组合。+是一个量词,表示它前面的符号(或组)至少重复一次。另请注意,\W(大写)是\w(小写)的否定形式,表示所有,除了来自字母数字类的任何符号,即表示[^a-zA-Z0-9_]

\s是空白字符的字符类,即[ \t\n\r\f\v]

\S因此,是否定形式:[^ \t\n\r\f\v]

量词:

+表示重复多次或一次

*意味着重复多少可能(甚至零次)

?表示只重复一次或零

于 2013-08-13T09:22:22.917 回答