正则表达式中常用的模式修正符有i、g、m、s、U、x、a、D、e 等。
它们之间可以组合搭配使用。
i
不区分(ignore)大小写;
例如:
/abc/i 可以匹配 abc、aBC、Abc
g
全局(global)匹配
- 如果不带g,正则过程中字符串从左到右匹配,找到第一个符合条件的即匹配成功,返回
- 如果带g,则字符串从左到右,找到每个符合条件的都记录下来,知道字符串结尾位置
例如:
var str = 'aaaaaaaa'
var reg1 = /a/; str.match(reg1) // 结果为:["a", index: 0, input: "aaaaaaaa"]
var reg2 = /a/g; str.match(reg2) // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]
m
多(more)行匹配
若存在换行
并且有开始^
或结束$
符的情况下,和g
一起使用实现全局匹配。
因为存在换行时默认会把换行符作为一个字符任务匹配字符串是个单行,g
只匹配第一行,添加m
之后实现多行,每个换行符之后就是开始。
例如:
var str = "abcggab
abcoab";
var preg1 = /^abc/gm; str.match(preg1) // 结果为:["abc", "abc"]
var preg2 = /ab$/gm; str.match(preg2) // 结果为:["ab", "ab"]
参考博客:
https://blog.csdn.net/qq_36340642/article/details/79352876