2013-06-21 69 views
1

我是相當新的正則表達式,因此這可能是你見過在計算器上:-)搜索和替換冒號(:)雙引號之間使用正則表達式

我有一個大的JSON文件與簡單的問題文字是這樣的:

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

文本可能包含任何特殊字符,也字符,如\",我明白的可以看作是正則表達式中的轉義字符。我試圖找到並替換單個字符冒號:與代字號~內的部分跟着"text"最好在Notepad ++。任何幫助將不勝感激。

回答

0

這個正則表達式將找到名爲text的字段值中的所有:,並用~替換字符。請注意,使用Notepad ++ v5正則表達式存在問題。我在這裏演示在記事本測試++ v6.3.3

正則表達式:與("text":\s"[^"]*?):

替換:$1~

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

enter image description here

+0

這是否適用於''text「:」我有一個:「說」關於某事,在下午6點很重要「' –

+0

對不起,我們能做的最好的表達就是這樣的'(」text「:\ s」(?:(?!「} |」,\ s 「\ w +」:\ s「)。)*):'你需要多次運行,直到記事本報告沒有更多的更改。不幸的是,這種表達方式超出了記事本的範圍,因爲它不支持表達式中的某些內容。一般來說,這個表達式可以工作http://regexr.com?35b69。 –

0

這裏是我做過什麼(所有幫助@Mike感謝,但我不得不作出許多修改。這就是爲什麼我回答我的問題,以便其他用戶可以得到完整的答案)

  1. 搜索在記事本++
  2. \"text\": \".*? : .*?\",查找和替換\1~\2全部更換:~
  3. 手動糾正錯誤
+0

在記事本++中給定文本'{「text」:「BLAH:BLAH」,「Never get a」:「:oskupee」,「not text」:「12:34」},這個表達式產生'{〜永遠不會得到一個「:」:oskupee「,」不是文本「:」12:34「}' –

+0

也在記事本++給定文本'{」文本「:」BLAH:BLAH「,」永遠不會得到「:」:oskupee「 ,「not text」:「12:34」}',這個表達式產生'{〜「not text」:「12:34」}' –

0

你可以這樣做:

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

這個想法是捕獲雙引號內的內容,將其放入替換內容中。

我使用lookbehind來允許雙引號內的轉義雙引號。

相關問題