/g

正则标志位

正则表达式修饰符/标志位速查(跨语言对照)。

本地处理 · 不上传

加载工具中…

相关:正则标志 · regex flags · g · i · m

正则标志位列出 g、i、m、s、u、y 等标志的含义与影响,并说明各语言的差异。标志设错会让正则行为完全不同。

使用步骤

  1. 先确定要忽略大小写、全局匹配还是多行
  2. 找到目标语言里对应的标志写法
  3. 注意各语言对同一标志的字母与语义略有差别
  4. 改完用实际样本验证匹配范围,别只看单条

使用场景

  • 为正则设置合适的标志
  • 理解各标志的作用
  • 排查匹配结果异常
  • 跨语言对照标志写法

小贴士

  • g 标志让正则匹配全部而非只匹配第一个,忘记加它是「只替换了一处」的原因。
  • 带 g 标志的正则对象有 lastIndex 状态,重复使用同一个对象会从上次的位置继续匹配,产生看似随机的结果。
  • s 标志让点号也能匹配换行符。处理多行文本时不加它,点号无法跨行。

常见问题

为什么只替换了第一个?

因为没加 g 标志。不带 g 时正则只匹配第一个结果,replace 也只替换一次。要全部处理必须加 g,或者使用 replaceAll。

为什么同一个正则时灵时不灵?

带 g 标志的正则对象会记录 lastIndex,反复用同一个对象调用 test 时会从上次结束的位置继续,导致结果交替出现真假。解决办法是每次新建正则,或手动重置 lastIndex。

m 和 s 有什么区别?

m(多行)改变 ^ 与 $ 的含义,让它们匹配每一行的开头结尾而非整个字符串的;s(单行/dotAll)让点号能匹配换行符。名字容易混淆,但作用完全不同。

正则标志位是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用正则标志位,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。