使用正则表达式在双引号之间搜索并替换冒号(:)

时间:2013-06-21 17:27:59

标签: regex notepad++

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

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

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

文本可能包含任何特殊字符以及\"之类的字符,我理解这些字符可以被视为正则表达式中的转义字符。我试图找到并替换单个字符冒号:,其中部分为~,后跟"text",最好是在Notepad ++中。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

这就是我的所作所为(感谢所有帮助@Mike,但我必须做很多编辑。这就是我回答我自己的问题所以其他用户可以得到完整答案的原因)

  1. 在Notepad ++中搜索\"text\": \".*? : .*?\",
  2. 查找并替换为\1~\2,将所有:替换为~
  3. 手动纠正错误

答案 1 :(得分:0)

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

中进行了测试

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

替换为:$1~

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

enter image description here

答案 2 :(得分:0)

你可以这样做:

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

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

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