有没有一种很好的方法可以从具有类" abc"的Java字符串中删除HTML?像 -
这样的简单正则表达式replaceAll("\\<.*?>","")
将删除所有内容,但我只想删除那些有类&#34; abc&#34;。
的标记。<H1 class="abc">Hey</H1>
<H1 class="xyz">Hello</H1>
仅使用类abc删除h1。 注 - &gt;必须通过正则表达式来解决它而不是通过解析器,因为这是我在代码中修改HTML的唯一实例。不要在我的代码中添加额外的JAR。
答案 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();