我把这个json放在一个附件里:
{"message": "This is a "bad-json" message" "severity": "INFO"}我需要匹配消息中的每个双引号,用单引号替换它们,保留其他双引号,如下所示:
{"message": "This is a 'bad-json' message" "severity": "INFO"}因此,我有一个正向展望和正面展望的准则:
(?<="message": ")(.*)(?=","severity")但是我不知道如何只获取内部的引号来进行替换,我尝试了更改(.*)部分,但似乎是全部或者没有,而且我还无法捕获双引号。
下面是一个例子:RegexR
我一直在寻找其他的答案,但大多数都是我找到的所有角色,Regex匹配,但仍然不够好。
编辑:
以下是更多的样本:
{"message": "This is a "bad-json" message with "bad json" quotes","severity": "INFO"}
{"message": ""bad-json" message at start and end "bad json"","severity": "INFO"}
{"message": "many "bad-json" "bad-json" "bad-json", "bad-json" "bad-json" messages all over the place","severity": "INFO"}发布于 2019-06-18 15:12:21
你可以用
(\G(?!^)|"message": ")([^"]*)"(?=.*?","severity")代之以$1$2'。
详细信息
(\G(?!^)|"message": ") -第1组:上次匹配或"message": "子字符串的结尾([^"]*) -第2组:除双引号外的任何0或多个字符" -双引号(?=.*?","severity") --在当前位置右侧的任意0或多个字符之后,需要一个","severity"子字符串。发布于 2019-06-18 14:45:26
https://stackoverflow.com/questions/56651595
复制相似问题