你表達它只是用來刪除特定的標籤特定的命名空間(除了你添加和額外>
到組)。
可以嘗試使用replaceAll
更具通用性,使用下面的正則表達式從任何已關閉的標記中刪除名稱空間。
def staticData =
'''<root>
<Group>
</Group xmlns="http://a">
<Group>
</Group xmlns="http://b">
<Group>
</Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Different>
</Different xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Normal>
</Normal>
</root>'''
staticData = staticData.replaceAll(/\<\/(\w*)\s[\S-\>]*\>/){ match, capture ->
return "</$capture>"
}
println staticData
此腳本返回:
<root>
<Group>
</Group>
<Group>
</Group>
<Group>
</Group>
<Different>
</Different>
<Normal>
</Normal>
</root>
正則表達式的解釋/\<\/(\w*)\s[\S-\>]*\>/
:
它通過捕獲該組((\w*)
)0或n個字符與</
(\<\/
),接着開始的文本匹配,然後跟着一個空格(\s
),然後除了空格和>
0或n次([\S-\>]*
)和最終ly >
char(\>
)。
希望它有幫助,