什么正则表达式将与 JavareplaceAll()
方法一起操作以从 HTML 字符串中删除<p>
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>
包含属性(即,在本例中为“样式”属性)的标签没有影响——见下文
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>
我们可以做些什么来“调整”它以便它处理这个问题?