什么正则表达式将与 Java replaceAll()
一起运行删除 <p>
的方法html 标签及其标签之间的内容来自 HTML 字符串?
例如,应用该方法后,
"<div><p>table <b>test</b> title</p><table><tbody><tr><td>this is table cell value</td></tr></tbody></table><p>miscellaneous contents</p><span>blah</span></div>"
变成:
"<div><table><tbody><tr><td>this is table cell value</td></tr></tbody></table><span>blah</span></div>"
注意:这是一项“学术”练习。我并不是在寻找使用 XML/HTML 解析器的解决方案。
<小时/>更新:
越来越接近这个问题的解决方案(谢谢,jlordo!)...您的模式似乎有点工作...
但是,建议的正则表达式字符串 ( "<[pP]>.*?</[pP]>"
) 似乎对 <p>
没有影响。包含属性的标签(即,在本例中为“style”属性)——见下文,
public static void main(String[] args)
{
String htmlstring = "<div><p style='text-align: center; font-style: italic'>[click the <b>submit</b> button to create the new company.]</p><table><tbody><tr><td>this is table cell value</td></tr></tbody></table><p>miscellaneous contents</p><span>blah</span></div>";
htmlstring = htmlstring.replaceAll("<[pP]>.*?</[pP]>", "");
}
htmlstring(清理前):
<div><p style='text-align: center; font-style: italic'>[click the <b>submit</b> button to create the new company.]</p><table><tbody><tr><td>this is table cell value</td></tr></tbody></table><p>miscellaneous contents</p><span>blah</span></div>
htmlstring(清理后):
<div><p style='text-align: center; font-style: italic'>[click the <b>submit</b> button to create the new company.]</p><table><tbody><tr><td>this is table cell value</td></tr></tbody></table><span>blah</span></div>
我们可以做些什么来“调整”它以解决这个问题吗?
最佳答案
尝试
htmlstring = htmlstring.replaceAll("(?i)<p.*?>.*?</p>", "");
请注意,(?i) 表示打开不区分大小写标志
关于java - 什么正则表达式将与 Java 的 "replaceAll"函数一起操作,以从 html 字符串中删除 <p> html 标签及其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094078/