如何使用JOLT移除字符串中的转义字符?现有replace方案失效
JOLT replace函数无法移除转义双引号的解决方案
问题分析
你当前的JOLT Spec仅处理了连字符(-)和空格相关的特殊字符,没有覆盖双引号("),所以第一个条目中的转义双引号\"未被移除,导致输出不符合预期。
修改后的JOLT Spec
更新正则表达式,加入对双引号的匹配规则(注意JSON字符串中双引号需要用\"转义):
[ { "operation": "modify-overwrite-beta", "spec": { "*": { "MiddleName": "=replace('\"|(\\-\\s*)|\\s+--', '', @(1,MiddleName))" } } } ]
关键说明
- 正则
\"|(\\-\\s*)|\\s+--会匹配三类内容:双引号、连字符加可选空格、空格加连字符 - 替换参数设为空字符串
'',表示直接移除匹配到的内容 - 调整后既能处理第一个条目中的转义双引号,将
Gisela\"mn转为Giselamn,也能保留原规则对连字符的处理效果,完全符合你的期望输出。
内容的提问来源于stack exchange,提问作者Alexa
相关产品推荐
相关产品推荐

