我对正则表达式相当陌生,因此这可能是您在 StackOverflow 上看到的最简单的问题 :-)
我有一个带有如下文本的大型 JSON 文件:
{..., "text": "BLAH BLAH", ...}
文本可能包含任何特殊字符以及类似的字符\"
,我理解可以将其视为正则表达式中的转义字符。我正在尝试在部分中查找并替换:
带有波浪号的单个字符冒号,~
然后"text"
最好在记事本++中。任何帮助将不胜感激。
此正则表达式将找到:
命名字段的值中的所有内容text
,并将该字符替换为~
. 请注意,在 Notepad++ v5 中使用正则表达式存在问题。我这里的演示是在 Notepad++ v6.3.3 中测试的
正则表达式:("text":\s"[^"]*?):
用。。。来代替:$1~
输入字符串:{"not text": "12:34", "text": "BLAH:BLAH", "Never get a": ":oskupee"}
这是我所做的(感谢@Mike 的所有帮助,但我必须进行许多编辑。这就是为什么我要回答我自己的问题,以便其他用户可以获得完整的答案)
\"text\": \".*? : .*?\",
在记事本++中搜索\1~\2
为全部替换:
为~
你可以这样做:
find: ("(?:[^"]+|(?<=\\)")*")\s*:
replace: $1~
这个想法是捕获双引号内的内容,并将其放在替换中。
我使用lookbehind来允许双引号内的转义双引号。