我需要以下html的正则表达式:

<div xmlns="http://www.w3.org/1999/xhtml">    <p/>
  <p/><p/>    <p/>
</div>

这来自一个富文本字段,显然这不是有意义的内容或手段:为空。
我不能在java中说:if(richTextConent == null || richTextContent.length == 0),因为Richtext字段包含某些内容。语义上,以上内容为空,因此我考虑使用正则表达式。我需要将此片段与java.util.regex匹配

如果摘要中有一些有意义的内容,例如:
<div xmlns="http://www.w3.org/1999/xhtml"> text<p/>
  <p/><p/>text    <p/>
</div>

正则表达式不匹配。

最佳答案

使用类似Jsoup的HTML解析器。

String html1 = "<div xmlns=\"http://www.w3.org/1999/xhtml\">    <p/>  <p/><p/>    <p/></div>";
String html2 = "<div xmlns=\"http://www.w3.org/1999/xhtml\"> text<p/>        <p/><p/>text    <p/>        </div>";

System.out.println(Jsoup.parse(html1).text().isEmpty()); // true
System.out.println(Jsoup.parse(html2).text().isEmpty()); // false

也可以看看:
  • Should I parse (X)HTML with regex?
  • HTML parsers in Java
  • Another Jsoup example
  • 10-07 19:46
    查看更多