从java

时间:2016-01-07 15:10:36

标签: java regex

有没有一种很好的方法可以从具有类" abc"的Java字符串中删除HTML?像 -

这样的简单正则表达式
replaceAll("\\<.*?>","")

将删除所有内容,但我只想删除那些有类&#34; abc&#34;。

的标记。
<H1 class="abc">Hey</H1>
<H1 class="xyz">Hello</H1>

仅使用类abc删除h1。 注 - &gt;必须通过正则表达式来解决它而不是通过解析器,因为这是我在代码中修改HTML的唯一实例。不要在我的代码中添加额外的JAR。

3 个答案:

答案 0 :(得分:0)

这应该工作

replaceAll("<h1[^>]*?class=\"*\'*abc\"*\'*>.*?h1>","")

答案 1 :(得分:-1)

尝试

replaceAll("<[Hh]1 class=['\"]landingPage['\"]>.*?</[Hh]1>", "")

但请注意,由于正则表达式不适合此任务,因此在复杂的HTML输入方面可能会产生不必要的结果。

输入

<H1 class="abc">Hey</H1>
<H1 class="xyz">Hello</H1>

输出

<H1 class="xyz">Hello</H1>

答案 2 :(得分:-2)

使用正则表达式解析HTML永远不是一个好主意,请参阅RegEx match open tags except XHTML self-contained tags

有关替代方案,请参阅Which HTML Parser is the best?

例如,使用JSoup,您可以编写类似这样的内容(未经测试):

Document doc = Jsoup.parse(html);
Elements elements = doc.select(".abc");
elements.remove();