我正在使用一個外部的API,我們只允許我使用正則表達式,我想從xml標籤中解析內容,如<name>alwin</name>
,我用<.*?>.*?<.*/>
解析「alwin」..它不起作用,但現在它已經結構化像<name><![CDATA[<table>alwin</table>]]</name>
,我也想解析CDATA ..我也想提取[![CDATA[<table>alwin</table]]
。也只是「阿爾溫」。這個正則表達式在xml中不適用於CDATA。我該如何解決?
0
A
回答
0
嘗試使用這種模式,而不是:
<([a-zA-Z]+).*?>(.*?)</\1>
的\1
子句靶向第一匹配組的圖案,即([a-zA-Z]+)
。因此,匹配的結束標記將始終與開始標記相同。
標籤的內容將隨後是第二組中的可用的:
Pattern p = Pattern.compile("<([a-zA-Z]+).*?>(.*?)</\\1>");
Matcher m = p.matcher("<name><![CDATA[<table>alwin</table>]]</name>");
while (m.find()) {
System.out.println(m.group(2));
}
上面片斷輸出:
<![CDATA[<table>alwin</table>]]
重申上述輸出的圖案,以獲得alwin
一部分。
+1
此方法將失敗'CDATA [
相關問題
- 1. 我該如何解決無效的正則表達式?
- 2. 爲什麼這個正則表達式不適用於C++ TR1?
- 3. 如何解決這個正則表達式?
- 4. 如何解決這個正則表達式?
- 5. 如何解決這個正則表達式?
- 6. 正則表達式CDATA
- 7. 我該如何格式化這個python正則表達式?
- 8. 正則表達式不適用於RedirectMatch
- 9. 正則表達式不適用於Ruby!
- 10. 正則表達式解決
- 11. 如何解決與正則表達式
- 12. 我該如何縮短這個正則表達式?
- 13. 正則表達式教程,我該如何改進這個
- 14. 我該如何改進這個正則表達式附加?
- 15. 我該如何扭轉這個正則表達式?
- 16. 我應該如何閱讀這個bash的正則表達式?
- 17. travis_c正則表達式travis_tag不解決
- 18. 正則表達式,該表達式或如何拆分這個表達式
- 19. 我遇到了C#中多行正則表達式的問題,我該如何解決這個問題?
- 20. XML格式不適用於CDATA
- 21. Java正則表達式適用於Linux,但不適用於Windows
- 22. 我該如何用正則表達式來做到這一點?
- 23. 正則表達式引擎如何解決不規則問題?
- 24. 我該如何解決這個錯誤:「Column'ASSET'不屬於表格。」?
- 25. 解釋這個正則表達式:(?:| {} I)
- 26. 解釋這個R正則表達式
- 27. 瞭解這個正則表達式
- 28. 正則表達式解析XML在.NET
- 29. xml解析中的正則表達式
- 30. 我該如何解決這個錯誤?我正在使用mariadb10
請參閱[本文所示答案](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – 2013-04-11 06:32:27