2013-07-08 156 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

相关问题