2017-04-18 30 views
0

我已經從XML文件中使用以下正則表達式試圖刪除所有的空白字符(包括\ r,\ n,\ T):正則表達式從XML文件中刪除開頭和結尾whitepsaces

>([\r\n\t ])*([^ ]*[^<>]*[^ ]*)([\r\n\t ])*< 

但是這個正則表達式捕獲文件中的所有XML標籤作爲單個匹配。我如何改進這個正則表達式來滿足要求?

輸入字符串:

<Address> 
    <City> New York </City> 
    <Zip> 1001 </Zip> 
    </Address> 

預期結果(當與\ 2取代):

<Address> 
    <City>New York</City> 
    <Zip>1001</Zip> 
    </Address> 
+0

這是一個[奇怪的正則表達式](https://regex101.com/r/6LdbDH/1)。 –

回答

1

一個正則表達式匹配>和wordcharacter之間的空格。
還是一個wordcharacter之間的空格和</

(?<=[>])\s+(?=\w)|(?<=\w)\s+(?=[<]\/) 

測試here

通過使用lookbehinds和前瞻,只有空格被抓獲。

爲什麼你的原始正則表達式有問題?嘗試使用this示例,並檢查說明當您從[\w ]+?中刪除?時會發生什麼情況。 (貪婪與懶惰)

相關問題