GUIDE深度 · Deep dive
正则 flags:g/i/m/s 怎么用?
flags 改变正则的匹配方式,不改变表达式本身。g 找全部、i 忽略大小写、m 让行首尾生效、s 让点号匹配换行;组合使用时要清楚每个 flag 的影响。
四个常用 flag
g:全局匹配;没有 g 只返回第一个。
i:忽略大小写。
m:^ 和 $ 匹配每一行,而不是整个字符串。
s:. 也匹配换行;否则 . 不匹配 \n。
组合陷阱
g + 空匹配要手动推进 lastIndex,否则死循环。
m 下 $ 不是字符串结尾;要结尾用 \z 或整体锚点。
常见问题
g 会改变 exec 结果吗?
会;g 让 exec 从 lastIndex 继续,适合循环。
m 和 s 能一起用吗?
可以;m 管行首尾,s 管点号跨行。