1. 圆括号 ()
圆括号在正则表达式中表示组的概念,主要应用于限制多选结构的范围、分组、捕获文本、环视。
1.1 示例:多选结构
(a|b|c)
:匹配 a
或 b1
或 c
1.2 示例:分组
(abc)?
:匹配 abc
一次或者零次
1.3 示例:捕获文本
(aaa)(bbb)(ccc)(?:ddd)(eee)
:可以用 $1
获取 (aaa)
匹配到的内容,用 $3
则获取到了 (ccc)
匹配到的内容,而 $4
则获取的是由 (eee)
匹配到的内容
1.4 示例:环视
a(?=bbbbb)
:顺序环视,表示 a
后面必须紧跟 5 个连续的 b
2. 方括号 []
方括号在正则表达式中用于单个匹配,可用于字符集、排除字符集之中。
2.1 示例:字符集
[0-9]
:表示此位置上的字符只能是 0
到 9
这十个数字
圆括号可以匹配多个连续的字符,而一对方括号只能匹配单个字符
2.2 示例:排除字符集
[^0-3]
:表示此位置上的字符不可以是 0
到 3
3. 对比
()
的内容表示一个子表达式,()
本身不匹配任何字符,也不限制匹配任何字符,只是把括号内的内容作为同一个表达式来处理- 例
(ab){1,3}
:表示ab
一起连续出现最少 1 次,最多 3 次
- 例
[]
表示匹配的字符在[]
中,并且只能出现一次,并且特殊字符写在[]
会被当成普通字符来匹配- 例
[(a)]
:匹配(
、a
、)
这三个字符
- 例