2017-06-05 24 views
0

我有一些轉義報價在我的JSON文件的值部分,Java的如何忽略引號內的行情

"key":"value" 

它就像

"text":"a personal persona as a street-smart "tough girl", which when 
combined with raw talent","birthday":"19871108" 

我想知道使用正則表達式來怎麼做轉義我的價值部分內的報價? 讓它看起來像

"text":"a personal persona as a street-smart \"tough girl\", which when 
combined with raw talent","birthday":"19871108" 
+1

在正則表達式中使用'\\\「' – SHG

+0

@SHG我認爲你的意思是'\」'。 '\\\「'被註冊爲'\'',並且提供了不必要的麻煩。 –

+0

我還不確定要在我的正則表達式中放置什麼,「是否意味着匹配」? –

回答

0

使用正則表達式棘手的部分是沒有找到報價,但要找到使用正則表達式轉義報價。

未轉義報價的定義是在偶數個反斜槓(最常見情況下爲零反斜槓)之前定義的。

的表達式是這個醜陋的東西:

(?<!(?:[^\\]|$)(?:\\{2})?\\)" 

如果你認爲這是不好的,請在Java中的轉義版本:

(?<!(?:[^\\\\]|$)(?:\\\\{2})?\\\\)\" 

這本質上做的是找到所有的報價是還沒有逃脫。我使用的測試字符串是:Testing "unescaped". \"escaped\". \\"unescaped again\\"正則表達式僅匹配第一組和第三組引號,而不匹配第二組。

它應該被替換爲\"或java,\\\"

試試吧,讓我知道!