类别
|
字符
|
含义
|
定位符
|
^
|
行首(默认)
|
$
|
行尾(默认)
|
|
\b
|
字边界,是单词和空格之间的位置
|
|
\B
|
非字边界,除字边界之外的任何位置
|
|
限定符
|
?
|
重复 [0,1]
|
+
|
重复 [1, +∞]
|
|
*
|
重复 [0, +∞]
|
|
{n}
|
重复 n
|
|
{n,}
|
重复 [n,+∞]
|
|
{n,m}
|
重复 [n, m]
|
|
(pattern)
|
将符合表达式pattern描述的若干字符整体视为一个字符进行匹配。
注意:
①圆括号将导致相关匹配存储到一个临时缓冲区(创建分组),并从左到右对缓冲区(组)编号,编码范围是[1-99];
②可使用“\index”访问指定索引的分组。使用该语法访问分组称为后向引用(通过该语法可检索相邻重复打字符串)
③也可对分组进行命名
|
|
(?:pattern)
|
非获取匹配,将组织创建分组示例,这有利于提高性能。
|
|
正向预查
|
(?=pattern)
|
先匹配符合pattern的字符组,然后在结果中再检索满足()之前表达式的匹配项。
(在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。)
|
反向预查
|
(?!pattern)
|
类似正向预查,只不过是取反。
(负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。)
|
[abc]或[a|b|c]
|
可选匹配,将匹配a或b或c,
优先匹配左侧的第一项
|
|
[a-z]
|
范围匹配
|
|
[^abc]或[^a-Z0-9]
|
取反,表示匹配abc(数字)之外的任意字符
|
|
| 或 a|b
|
二选一进行匹配
|
|
\index
|
引用指定索引值的自表达式匹配项(index[0,99])
|
|
\d
|
匹配数字。等价于[0-9]
|
|
\D
|
匹配非数字。等价于[^0-9]
|
|
\w
|
匹配单词字符(子母、数字、下划线)。等价于[a-Za-z0-9_]
|
|
\W
|
匹配非单词字符。等价于[^a-Za-z0-9_]
|
|
\s
|
匹配空白字符。等价于[\n\r\t\v\f]
|
|
\S
|
匹配非空白字符。等价于[^\n\r\t\v\f]
|
|
.
|
匹配非换行符之外的任何单字符。等价于[^\n]
|
|
空白字符
|
\n
|
换行符
|
\r
|
回车符
|
|
\t
|
水平制表符
|
|
\v
|
垂直制表符
|
|
\f
|
换页符
|
|
进制
|