正则表达式
语法
普通字符
对大小写字母、数字、标点符号的匹配。
表达式 | 说明 |
---|---|
[abc] |
匹配[] 中的所有字符 |
[^abc] |
匹配除了[] 中的所有字符 |
[a-c] |
匹配区间内的所有字符 |
. |
[^/n/r] |
/s |
匹配空白符,包括换行 |
/S |
匹配非空白符,不包括换行 |
/w |
[A-Za-z0-9_] |
限定符
指定正则表达式中给定组件出现的次数。
表达式 | 说明 |
---|---|
a{n} |
匹配连续的两个a |
a{n, } |
匹配至少n 个a |
a{m, n} |
匹配至少m 个,至多n 个a |
a* |
a{0, } |
a+ |
a{1, } |
? |
a{0, 1} |
其中
*、+
尽可能匹配最多字符,可以在他们后面加上?
实现最小匹配。
定位符
表达式 | 说明 |
---|---|
^ |
字符串的开始位置 |
$ |
字符串的结束位置 |
/b |
匹配单词边界的字符 |
/B |
匹配非单词边界的字符 |
定位符不能与限定符一起使用
修饰符
/pattern/flags
修饰符 | 说明 |
---|---|
/i |
不区分大小写 |
/g |
匹配所有 |
/m |
多行匹配 |
特殊字符
正则表达式的功能字符在匹配时前面加上/
转义。
选择
用()
将所有选择项括起来,相邻的选择项用|
分割。
?=、?<=、?!、?<!
的区别
exp1(?=exp2) # 查找exp2前面的exp1
exp1(?!exp2) # 查找后面不是exp2的exp1
(?<=exp2)exp1 # 查找exp2后面的exp1
(?<=exp2)exp1 # 查找前面不是exp2的exp1
优先级
运算符 | 说明 |
---|---|
/ |
转义符 |
()、[] |
括号 |
*、+、?、{n}… |
限定符 |
^、$、/ |
其它元字符 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/281966.html