以下是一些常用的正则表达式元字符及其含义:
一、基本元字符
-
.
(点号)- 匹配除换行符(
\n
)外的任意单个字符。 - 例如,正则表达式
a.b
可以匹配 "aab"、"a2b"、"axb" 等,但不能匹配 "a\nb"。
- 匹配除换行符(
-
\d
- 匹配任意一个数字,等价于
[0-9]
。 - 例如,正则表达式
\d\d
可以匹配 "12"、"34"、"56" 等两位数字的组合。
- 匹配任意一个数字,等价于
-
\D
- 匹配任意一个非数字字符,等价于
[^0-9]
。 - 例如,正则表达式
\D\D
可以匹配 "ab"、"EF"、"xy" 等两个非数字字符的组合。
- 匹配任意一个非数字字符,等价于
-
\w
- 匹配任意一个字母、数字或下划线字符,等价于
[a-zA-Z0-9_]
。 - 例如,正则表达式
\w\w\w
可以匹配 "abc"、"123"、"a_1" 等由字母、数字或下划线组成的三位字符串。
- 匹配任意一个字母、数字或下划线字符,等价于
-
\W
- 匹配任意一个非字母、数字或下划线字符,等价于
[^a-zA-Z0-9_]
。 - 例如,正则表达式
\W\W
可以匹配 "$$"、"@#"、"-" 等非字母、数字或下划线组成的两位字符串。
- 匹配任意一个非字母、数字或下划线字符,等价于
-
\s
- 匹配任意一个空白字符,包括空格、制表符(
\t
)、换行符(\n
)、回车符(\r
)、换页符(\f
)、垂直制表符(\v
)。 - 例如,正则表达式
\s\s
可以匹配 ""(两个空格)、"\t\n" 等。
- 匹配任意一个空白字符,包括空格、制表符(
-
\S
- 匹配任意一个非空白字符,是
\s
的反义。 - 例如,正则表达式
\S\S
可以匹配 "aA"、"1b" 等不含空白字符的两位字符串。
- 匹配任意一个非空白字符,是
二、限定符
-
*
- 匹配前面的元素零次或多次。
- 例如,正则表达式
a*
可以匹配 ""(空字符串)、"a"、"aa"、"aaa" 等。
-
+
- 匹配前面的元素一次或多次。
- 例如,正则表达式
a+
可以匹配 "a"、"aa"、"aaa" 等,但不能匹配空字符串。
-
?
- 匹配前面的元素零次或一次。
- 例如,正则表达式
ab?c
可以匹配 "ac" 或 "abc"。
-
{n}
- 匹配前面的元素恰好
n
次。 - 例如,正则表达式
a{3}
可以匹配 "aaa",但不能匹配 "aa" 或 "aaaa"。
- 匹配前面的元素恰好
-
{n,}
- 匹配前面的元素至少
n
次。 - 例如,正则表达式
a{2,}
可以匹配 "aa"、"aaa"、"aaaa" 等。
- 匹配前面的元素至少
-
{n,m}
- 匹配前面的元素至少
n
次且最多m
次。 - 例如,正则表达式
a{2,4}
可以匹配 "aa"、"aaa"、"aaaa",但不能匹配 "a" 或 "aaaaa"。
- 匹配前面的元素至少
三、边界匹配符
-
^
- 匹配行的开始位置。
- 例如,正则表达式
^abc
只匹配以 "abc" 开头的行,如 "abcdef",而不匹配 "1abc"。
-
$
- 匹配行的结束位置。
- 例如,正则表达式
abc$
只匹配以 "abc" 结尾的行,如 "defabc",而不匹配 "abcdef"。
-
\b
- 匹配单词的边界,即单词的开始或结束位置。
- 例如,正则表达式
\bcat\b
可以匹配 "The cat sat" 中的 "cat",但不会匹配 "category" 中的 "cat",因为在 "category" 中 "cat" 不是一个单独的单词。
四、字符集
-
[]
- 匹配方括号内的任意一个字符。
- 例如,正则表达式
[abc]
可以匹配 "a"、"b" 或 "c"。
-
[^]
- 匹配不在方括号内的任意一个字符,是
[]
的反义。 - 例如,正则表达式
[^abc]
可以匹配除 "a"、"b"、"c" 以外的任何字符。
- 匹配不在方括号内的任意一个字符,是
-
[a-z]
- 匹配从
a
到z
的任意一个小写字母。 - 例如,正则表达式
[a-z]
可以匹配 "a"、"b"、"c" 等小写字母。
- 匹配从
-
[A-Z]
- 匹配从
A
到Z
的任意一个大写字母。 - 例如,正则表达式
[A-Z]
可以匹配 "A"、"B"、"C" 等大写字母。
- 匹配从
-
[0-9]
- 匹配从
0
到9
的任意一个数字,与\d
等价。
- 匹配从
-
[a-zA-Z0-9]
- 匹配任意一个字母或数字。
五、分组和引用
-
()
- 对元素进行分组,可以改变限定符的作用范围,同时可以用于捕获匹配的内容,以便后续使用。
- 例如,正则表达式
(ab)+
表示 "ab" 这个组合可以重复出现,如 "abab"、"ababab" 等。 - 对于捕获组,可以在替换操作中使用。例如,在一些编程语言中,使用
(ab)c\1
进行替换,当匹配到 "abcab" 时,将其替换为 "ababab",这里的\1
是对第一个捕获组(ab)
的引用。
-
|
- 表示逻辑或,匹配其中之一的表达式。
- 例如,正则表达式
a|b
可以匹配 "a" 或 "b"。
这些元字符是正则表达式的基础,通过它们的组合和灵活运用,可以实现各种复杂的文本匹配、验证、提取和替换等操作。根据不同的编程语言和工具,在使用正则表达式时可能会有细微的差异,但这些基本元字符的功能大致相同。