我有一個xml字符串,我通過REST調用獲取。但是,某些屬性的值已損壞。例如:Java - 刪除XML屬性中的雙引號
<property name="foo" value="Some corrupted String because of "something" like that"/>
我怎麼能代替雙引號無論是在Java中沒有值=或不/>用單引號follown前面,並得到一個有效的XML串出的是損壞的一個, 6?
編輯:
我試圖修改這一超前/回顧後發正則表達式是用於VisualBasic中。但是由於我猜想轉義字符不兼容,我無法創建它的Java版本。那就是:
(?<=^[^""]*""(?>[^""]*""[^""]*"")*[^""]*)"(?! \s+ \w+=|\s* [/?]?" >)|(?<!\w+=)""(?=[^""]*""(?>[^""]*""[^""]*"")*[^""]*$)
請分享你有什麼到目前爲止已經試過。 –
好吧,我試圖修改這個用於VisualBasic的lookahead/lookbehind正則表達式。但是由於我猜想轉義字符不兼容,我無法創建它的Java版本。這裏是: '(?<=^[^「」] *「」(?> [^「」] *「」[^「」] *「」)* [^「」] *)「(? !\ s + \ w + = | \ s * [/?]?「>)|(?<!\ w + =)」「(?= [^」「] *」「(?> [^」「] *」 「[^」「] *」「)* [^」「] * $)' – vahdet
你最好用['\\ s + [\\ w:.-] + = \」([^ \ ] * |'](HTTPS(:\ 「(\\ S + [\\瓦特.-] + = \?!」 \\ S * />)[^ \ 「*)\] *?)」: //regex101.com/r/cP7fD2/1),然後只需替換每個組1中的雙引號。查看[此演示](http://ideone.com/Rx2q4H)。 –