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

求匹配大括号{}内双引号的正则表达式,用于转义处理

匹配大括号内双引号的正则方案

直接可用的正则(非嵌套大括号场景)

如果你的文本里没有嵌套的大括号结构,用这个正则就能精准匹配所有{}内部的双引号:

"(?=(?:[^{}]*{[^{}]*})*[^{}]*$)

或者更易读的版本:

(?<=\{(?:[^{}])*)"(?=(?:[^{}])*\})

工作原理

  • (?<=\{(?:[^{}])*):反向预查,确保当前引号前面存在一个{,且两者之间没有其他大括号(避免跨大括号误匹配)
  • ":目标匹配的双引号
  • (?=(?:[^{}])*\}):正向预查,确保当前引号后面存在一个},中间也没有其他大括号

支持嵌套大括号的版本

如果文本包含嵌套大括号(比如{data: {"subkey": "value"}}),需要用支持递归的正则引擎(如JS ES2018+、Python 3.10+、PCRE),正则如下:

"(?=(?:(?:(?!\{|\})|(?R))*+\})

替换示例

输入示例:

{"name": "Alice", "profile": {"age": 30, "city": "London"}}

将匹配到的"替换为\"后,输出:

{"name": "Alice", "profile": {"age": 30, "city": "London"}}

兼容旧引擎的备选方案

如果你的正则引擎不支持预查(比如旧版JavaScript),可以用捕获组循环替换:

(\{[^{}]*?)"([^{}]*?\})

替换规则使用$1\"$2,重复执行替换直到没有新匹配项为止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:54:53