/g
正则标志位
正则表达式修饰符/标志位速查(跨语言对照)。
本地处理 · 不上传
加载工具中…
相关:正则标志 · regex flags · g · i · m
正则标志位列出 g、i、m、s、u、y 等标志的含义与影响,并说明各语言的差异。标志设错会让正则行为完全不同。
使用步骤
- 先确定要忽略大小写、全局匹配还是多行
- 找到目标语言里对应的标志写法
- 注意各语言对同一标志的字母与语义略有差别
- 改完用实际样本验证匹配范围,别只看单条
使用场景
- 为正则设置合适的标志
- 理解各标志的作用
- 排查匹配结果异常
- 跨语言对照标志写法
小贴士
- g 标志让正则匹配全部而非只匹配第一个,忘记加它是「只替换了一处」的原因。
- 带 g 标志的正则对象有 lastIndex 状态,重复使用同一个对象会从上次的位置继续匹配,产生看似随机的结果。
- s 标志让点号也能匹配换行符。处理多行文本时不加它,点号无法跨行。
常见问题
为什么只替换了第一个?
因为没加 g 标志。不带 g 时正则只匹配第一个结果,replace 也只替换一次。要全部处理必须加 g,或者使用 replaceAll。
为什么同一个正则时灵时不灵?
带 g 标志的正则对象会记录 lastIndex,反复用同一个对象调用 test 时会从上次结束的位置继续,导致结果交替出现真假。解决办法是每次新建正则,或手动重置 lastIndex。
m 和 s 有什么区别?
m(多行)改变 ^ 与 $ 的含义,让它们匹配每一行的开头结尾而非整个字符串的;s(单行/dotAll)让点号能匹配换行符。名字容易混淆,但作用完全不同。
正则标志位是免费的吗?
是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。
使用正则标志位,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。