=== 表示 恒等于
限定符
用于限定给定的组件要出现多少次才能满足匹配
- * 0次或多次 zo* 能匹配 “o” 0次或多次 zo/ z /zoo 都可以匹配 *==={0,}
- + 一次或多次 zo+ 能匹配 “o” 1次或多次 zo/zoo/zoooo 都可以 +==={1,}
- ? 配合子表达式出现 de(ww)? de / deww 的deww /defr 中的de / 相当于后面无所谓,前面对了就行 ?=== {0,1}
- {n} 匹配确定的n次 o{2} 可以匹配 food中的两个o 但不能匹配bob 中的o
- {n,} 至少匹配n次 o{2} 不能匹配bob中的“o” 但是能匹配 fooooooood 中的所有 “o” {n,}=== o+
- {n,m} 最少匹配n次,最多匹配m次 o{1,3} 将匹配foooooooooood 中前三个“o” 注意两个数之间除了逗号不能有空格
非打印字符
\cx 判定一个控制字符:比如 Contral+M 或回车符 \cr
\f 匹配一个换页符
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配任意空白字符 等价于 [ \f\n\r\t\v]
\S 匹配一个非空白字符 等价于 [^ \f\n\r\t\v]
\t 匹配一个制表符
\v 匹配一个垂直制表符
特殊字符
$ 匹配输入字符串的结束位置
( ) 标记一个子表达式的开始和结束位置
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
. 匹配换行符之外的任何单字符
[ 标记一个中括号表达式的开始
? 匹配前面的子表示零次或一次,非贪婪限定符
\ 将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时他表示不接受该字符集合
{ 标记限定符表达式的开始
| 指明二选一
定位符
^ 字符开始的地方
$ 字符结束的地方
\b 匹配一个单词的边界,即字与空格间的位置
\B 非单词边界
(pattern) 匹配patten并获取这一匹配。
(?:pattern) 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 取或
(?=pattern) Windows(?=95|98|NT|2000) 限定范围的搜索
(?!pattern) 不匹配pattern的地方开始 例如"Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。
(?<= pattern) "(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
(?<! pattern) "(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。
[xyz] 匹配包含的任意一个字符
[^xyz] 匹配未包含的任意一个字符
[a-z] 字符范围
[^a-z] 非 !字符范围
\d 匹配一个数字 === [0-9]
\D 匹配一个非数字 === [^0-9]
\f 匹配一个换页符 === \x0c 和 \cL
\n 匹配一个换行符 === \x0a 和 \cJ
\r 匹配一个回车符 === \x0d 和 \cM
\s 匹配任何空白符,包含空格、制表符、换页符等等 === [ \f\n\r\t\v]
\S 匹配任何非空白符 === [^ \f\n\r\t\v]
\t 匹配一个制表符 === \x09 和 \cI
\v 匹配一个垂直制表符 === \x0b 和 \cK
\w 匹配一个字母、数字、下划线 === '[A-Za-z0-9_]'
\W 匹配非字母、数字、下划线 === '[^A-Za-z0-9_]'
不同进制处理:
\xn 匹配n。n为十六进制转义值 例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。
\num 匹配num num为正整数, 例如,'(.)\1' 匹配两个连续的相同字符。
\n
\nm
\nml
\un
运算符优先级
\ | 转义符 |
(), (?:), (?=), [] | 圆括号和方括号 |
*, +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \任何元字符、任何字符 | 定位点和序列(即:位置和顺序) |
| | 替换,"或"操作 字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。 |