2013-07-08 154 views
2

我想在開始時分割文本,並結束一些標籤(div和p)不是全部。在Java中使用正則表達式分割字符串

Input: 
String html = "text<div>some text</div><tag>text</tag><span>asd</span><p>text</p>text"; 

Output: 
text 
<div>some text</div> 
<tag>text</tag><span>asd</span> 
<p>text</p> 
text 

我應該使用哪個正則表達式?

+7

一個名爲HTML解析器的正則表達式。 – m0skit0

+1

另請參閱http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

嘗試使用像JSoup的HTML解析 – selig

回答

1

你可以分裂它與這個表達式

(?<=</(div|p)>)|(?=<(div|p)>) 

但正如其他推薦使用的HTML解析器..


但是,爲什麼使用的解析器..

考慮上述正則表達式。它不會工作

  • ,如果你有一個嵌套的標籤。(NO 正則表達式可以解決這個problem..It的下一個幾乎是不可能的)
  • 如果標籤具有屬性
  • ,如果您有標籤內的空間中的任意數

雖然,它目前還不清楚爲什麼你想要做這種分裂

+0

非常感謝! – Nyger

相關問題