正则表达式记录
- 锚点
.
任意单个字符(除了换行符)^
匹配输入字符串的开始位置$
匹配输入字符串的结束位置\b
单词边界\B
非单词边界
- 字符串
[a-z]
匹配范围[abc]
匹配字符集[^abc]
否定字符集\d
匹配任意一个数字(0-9)\D
匹配任意一个非数字字符\w
任意一个字母数字字符(等价于[a-zA-Z0-9_])\W
任意一个非字母数字字符\d
任意数字\D
任意非数字\s
空白符\S
非空白符
- 量词
*
匹配前面的子表达式零次或多次+
匹配前面的子表达式一次或多次?
匹配前面的子表达式零次或一次{n}
匹配确定的n次{n,}
至少匹配n次{n,m}
最少匹配n次且最多m次
- 分组与捕获
(group)
将多个表达式合并为一个组(?:group)
非捕获组,不捕获匹配的文本
- 选择与逻辑或
|
匹配两项之间的任意一项
- 转义
\
用于转义特殊字符或表示特殊序列
- 断言
?=
正向前瞻断言,匹配后面跟随特定模式的字符串?!
负向前瞻断言,匹配后面不跟随特定模式的字符串?<=
正向后瞻断言,匹配前面是特定模式的字符串?<!
负向后瞻断言,匹配前面不是特定模式的字符串
- 标志
i
忽略大小写g
全局搜索m
多行搜索
那么现学现卖,我发现原来的引用后面没有空格,我肯定是不会一个一个加的,那么怎么办呢?
想一想再看答案噢XD
(?<=`[^`]*)`:其实是匹配两个反引号中的第二个,而他们之间有任意字符内容。