匹配字符串字面值
匹配数字字符串
d,[0-9]
匹配非数字字符串
D,^d,[^0-9]
匹配单词字符
w,与D的区别是D会匹配空格,标点符号等字符,w只匹配字母,数字和下划线- 英语环境下即:
[_a-zA-Z0-9]
匹配非单词字符
W,[^_a-zA-Z0-9]
匹配空白符
s,[ ]- 制表符:
- 换行符:
- 回车符:
匹配任意字符
- 粗略匹配:
.{7},任意匹配7个字符 - 确定边界:
A.{5}T,匹配A开头,T结尾,中间任意5个字符的字符串 - 匹配某一长度的单词:
w{7} - 匹配0个或多个字符:
.*.相当于[^ ]
边界
行的起始和结束
- 匹配行或字符串的起始要使用脱字符:
^ - 匹配行或字符的结尾要使用美元符号:
$
单词的边界和非边界
*,B
选择,分组和向后引用
选择操作
- 基本:
(the|The|THE)
子模式
- 指分组中的一个或多个分组
- 子模式可以是不依赖的
(the|The|THE) - 也可以是依赖的
(t|T)h(e|eir) - 括号对子模式不是必须的
捕获分组和向后引用
- 当一个模式的全部或部分内容由一对括号分组时,它对内容进行捕获并临时存储于内存中
- 可以通过后向引用重用捕获的内容:
1,$1,引用的是第一个捕获的分组,以此类推
非捕获分组
- 不会将其内容存储在内存中
量词
基本匹配
?,0个或一个+,一个或多个*,0个或多个
匹配特定次数
{n},精确匹配n次{n,},匹配n次或多次{m,n},匹配m至n次
懒惰量词
- 匹配尽可能少的次数,也可能不匹配任何内容,0次
- 简单就是在量词最后加
?
占有量词
- 尽量匹配多的内容,但与贪心匹配不同,它不进行回溯,也不会放弃找到的内容
- 简单就是在量词最后加
+