1

我对正则表达式相当陌生,因此这可能是您在 StackOverflow 上看到的最简单的问题 :-)

我有一个带有如下文本的大型 JSON 文件:

{..., "text": "BLAH BLAH", ...}

文本可能包含任何特殊字符以及类似的字符\",我理解可以将其视为正则表达式中的转义字符。我正在尝试在部分中查找并替换:带有波浪号的单个字符冒号,~然后"text"最好在记事本++中。任何帮助将不胜感激。

4

3 回答 3

1

此正则表达式将找到:命名字段的值中的所有内容text,并将该字符替换为~. 请注意,在 Notepad++ v5 中使用正则表达式存在问题。我这里的演示是在 Notepad++ v6.3.3 中测试的

正则表达式:("text":\s"[^"]*?):

用。。。来代替:$1~

输入字符串:{"not text": "12:34", "text": "BLAH:BLAH", "Never get a": ":oskupee"}

在此处输入图像描述

于 2013-06-22T02:09:11.190 回答
0

这是我所做的(感谢@Mike 的所有帮助,但我必须进行许多编辑。这就是为什么我要回答我自己的问题,以便其他用户可以获得完整的答案)

  1. \"text\": \".*? : .*?\",在记事本++中搜索
  2. 查找并替换\1~\2为全部替换:~
  3. 手动更正错误
于 2013-06-21T19:41:30.073 回答
0

你可以这样做:

find: ("(?:[^"]+|(?<=\\)")*")\s*:
replace: $1~

这个想法是捕获双引号内的内容,并将其放在替换中。

我使用lookbehind来允许双引号内的转义双引号。

于 2013-06-22T07:09:18.690 回答