You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式^.+=[^=].+$为何匹配含多个=的字符串?

正则表达式匹配异常的原因及修正

你的正则^.+=[^=].+$能匹配abc==qww,核心问题是**.+的贪婪匹配特性**:

  • .+是贪婪量词,会尽可能匹配最多的任意字符(除换行)。处理abc==qww时,它不会停在第一个=前,而是会匹配到第二个=的前一个字符(也就是abc=);
  • 剩下的字符串=qww里,=刚好匹配正则中的=,[^=]匹配q,最后的.+匹配ww,整个字符串就被完整匹配了。

修正方案

如果要确保=后面紧跟的不是=,同时结构为「任意内容 + 单个= + 非=开头的任意内容」,可以用两种方式调整:

  • 改用非贪婪量词:^.+?=[^=].+$。+?是非贪婪模式,会匹配最少的字符,确保第一个=就是目标分隔符;
  • 更精确限制前面的内容:^[^=]+=[^=].+$。把前面的.+换成[^=]+,确保分隔符前的内容不含=,从根源避免贪婪匹配的问题。

内容的提问来源于stack exchange,提问作者Floris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:19:50