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

如何用正则表达式匹配首个等号后的全部内容(含后续等号)?

正则解决方案:仅包裹首个等号后的内容

问题分析

你需要对每个键值对的首个等号进行处理,将其后续所有内容(包括后续等号)用单引号包裹,但之前的正则无法适配多键值对场景:

  • ([^=]+)=([^=]+):第二个捕获组[^=]+会在遇到下一个等号时停止匹配,导致内容截断;
  • ([^=]+)=(.*):会从第一个等号开始匹配到字符串末尾,把所有后续键值对都当成当前值,不符合需求。

正确正则与替换

使用正向预查限制匹配范围,确保只捕获当前键值对的内容:

  • 匹配模式:([^=]+)=(.*?)(?=, ?[^=]+=|$)
  • 替换模板:$1='$2'

示例代码(Python)

import re
input_text = "val=aabbcc,val2==aabb,val3=aa==bb, val4=a=bccc"
result = re.sub(r'([^=]+)=(.*?)(?=, ?[^=]+=|$)', r"\1='\2'", input_text)
print(result)

匹配逻辑说明

  1. ([^=]+):捕获键名(不含等号的任意字符);
  2. =:精准匹配首个等号;
  3. (.*?):非贪婪捕获等号后的所有内容(包含后续等号);
  4. (?=, ?[^=]+=|$):正向预查,确保匹配截止到下一个键值对的开头(逗号+可选空格+键名+等号)或字符串结尾。

输出结果

运行后会得到预期的格式化字符串:

val='aabbcc',val2='=aabb',val3='aa==bb', val4='a=bccc'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:05:25