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

Groovy中带条件替换特定字符串的实现方案求助

正则优化:特殊字符的条件替换

需求

  • 将字符串中的**反斜杠(\)和转义双引号(")**替换为点号(.)
  • 例外规则:当转义双引号(")后紧跟逗号(,)时,不执行替换
  • 需用replaceAll处理大体积payload

输入示例

{
"Name":"138.5\" Ultra\violet"
"Id":"\\z\\\\\"",
}

期望输出

{
"Name":"138.5. Ultra.violet"
"Id":"..z......",
}

现有问题代码

newcontent=newcontent.toString().replaceAll(/\\"/, '.')
newcontent=newcontent.toString().replaceAll("\\\\", ".")

上述代码会无差别替换所有\"和\,包括逗号前的\",不符合需求。

解决方案

使用正向否定预查的正则表达式,一次性完成全局替换,提升大文本处理效率:

newcontent = newcontent.toString().replaceAll(/(\\")(?!,)|\\/g, '.');

正则说明

  • (\\")(?!,):匹配\",但仅当它后面不紧跟逗号时才会被替换为.
  • \\:匹配所有单独的反斜杠\,统一替换为.
  • g修饰符:开启全局匹配,处理所有符合条件的字符

这样就能精准满足需求:仅保留逗号前的\",其余所有目标字符全部替换为点号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:00:58