结论
1、用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用 ?: 放在第一个选项前来消除这种副作用。
2、限定符与定位符不能一起使用。
3、运算符的优先级: 转义符 > 圆括号方括号 > 定位符限定符 > 或'|'操作
概念
2、限定符:
- '*'
- '+'
- '?'
- '{n}'
- '{n,}'
- '{n,m}'
1、定位符:
- '^'
- '$'
- '\b'
- '\B'
基础知识:
3、非捕获元
- (?:pattern)
- (?=pattern)
- (?<=pattern)
- (?!pattern)
- (?<!pattern)
非捕获元的详细,请参考 https://blog.csdn.net/ludan1991/article/details/108471313
2、牢记修饰符:
语法规则 /pattern/flags
- 'i' 不区分大小写
- 'g' 全局匹配
- 'm' 多行匹配
- 's' 使得特殊'.'中包含换行符'\n'
1、牢记特殊字符/元字符:
'\' 转义符
'.' 匹配除换行符之外的所有字符
'^' 开始标记 | 方括号内的'^'表示取反
'$' 结束标记
'\b' 单词的边界
'\B' 非单词的边界
'+' 匹配1个、多个字符
'*' 匹配0个、1个、多个字符
'?' 匹配0个、1个字符
'{n}' 匹配n个
'{n,}' 匹配n——无穷大个
'{n,m}' 匹配n——m个
'()' 子表达式的开始位置和结束位置
'[]' 中括号表达式的开始和结束
'{}' 限定符的开始和结束
'|' 两个选项之间的一个
'\d' 数字字符,等价于 '[0-9]'
'\D' 非数字字符,等价于 '[^0-9]'
'\w' 字母、数字、下划线,等价于'[A-Za-z0-9_]'
'\W' 非字母、数字、下划线,等价于'[^A-Za-z0-9_]'
'\xn' 匹配ASCII编码n,例如 '\x41' 匹配 "A"
'\un' 匹配Unicode字符,例如 '\u597d' 匹配 "好"
'\num' 配合'()'使用
'\cx' 匹配由 x 指明的控制字符
非打印字符: 语法规则 '\cx'
'\f' 换页符,等价于 \x0c 和 \cL
'\n' 换行符,等价于 \x0a 和 \cJ
'\r' 回车符,等价于 \x0d 和 \cM
'\t' 制表符,等价于 \x09 和 \cI
'\v' 垂直制表符,等价于 \x0b 和 \cK
'\s' 空白字符
'\S' 非空白字符