正则表达式中的通配符(或称为元字符)是指具有特殊含义的字符,它们可以用来匹配一类字符,而不仅仅是字面上的字符。以下是一些常见的正则表达式通配符及其意义:
-
.
(点):- 匹配除了换行符之外的任何单个字符。
-
*
(星号):- 匹配前面的子表达式零次或多次。例如,
zo*
能匹配 “z” 以及 “zoo”。
- 匹配前面的子表达式零次或多次。例如,
-
+
(加号):- 匹配前面的子表达式一次或多次。例如,
zo+
能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。
- 匹配前面的子表达式一次或多次。例如,
-
?
(问号):- 匹配前面的子表达式零次或一次。例如,
do(es)?
可以匹配 “do” 或 “does” 中的 “do” 和 “does”。
- 匹配前面的子表达式零次或一次。例如,
-
{n}
:- 匹配前面的子表达式恰好 n 次。例如,
o{2}
不能匹配 “Bob” 中的 “o”,但是能匹配 “food” 中的两个 o。
- 匹配前面的子表达式恰好 n 次。例如,
-
{n,}
:- 匹配前面的子表达式至少 n 次。例如,
o{2,}
不能匹配 “Bob” 中的 “o”,但能匹配 “foooood” 中的所有 o。
- 匹配前面的子表达式至少 n 次。例如,
-
{n,m}
:- 匹配前面的子表达式至少 n 次,但不超过 m 次。例如,
o{1,3}
将匹配 “fooooood” 中的前三个 o。
- 匹配前面的子表达式至少 n 次,但不超过 m 次。例如,
-
^
(脱字符):- 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
-
$
(美元符号):- 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
-
[...]
(方括号):- 匹配方括号中的任何字符。例如,
[abc]
匹配 “a”、“b” 或 “c”。您还可以使用连字符-
来指定字符范围,如[a-z]
匹配任何小写字母。
- 匹配方括号中的任何字符。例如,
-
[^...]
(方括号内的脱字符):- 匹配任何不在方括号中的字符。例如,
[^abc]
匹配除了 “a”、“b” 和 “c” 之外的任何字符。
- 匹配任何不在方括号中的字符。例如,
-
|
(管道符号):- 匹配两个或多个选择项中的一个。例如,
z|food
能匹配 “z” 或 “food”。
- 匹配两个或多个选择项中的一个。例如,
-
\
(反斜杠):- 作为转义字符,用于匹配那些具有特殊含义的字符。例如,
\.
匹配实际的点字符(.
),而\$
匹配实际的美元符号($
)。
- 作为转义字符,用于匹配那些具有特殊含义的字符。例如,
-
\d
:- 匹配一个数字字符。等价于
[0-9]
。
- 匹配一个数字字符。等价于
-
\D
:- 匹配一个非数字字符。等价于
[^0-9]
。
- 匹配一个非数字字符。等价于
-
\s
:- 匹配任何空白字符,包括空格、制表符、换页符等。等价于
[ \f\n\r\t\v]
。
- 匹配任何空白字符,包括空格、制表符、换页符等。等价于
-
\S
:- 匹配任何非空白字符。等价于
[^ \f\n\r\t\v]
。
- 匹配任何非空白字符。等价于
-
\w
:- 匹配包括下划线的任何单词字符。等价于
[a-zA-Z0-9_]
。
- 匹配包括下划线的任何单词字符。等价于
-
\W
:- 匹配任何非单词字符。等价于
[^a-zA-Z0-9_]
。
- 匹配任何非单词字符。等价于
请注意,这些通配符的具体行为可能会受到正则表达式引擎和所使用的选项(如是否区分大小写、是否考虑多行等)的影响。