我想在 html 字符串中删除一些标签和这些标签的内容,如下所示:
val htmlString = "<html><b>test,test</b></html>"
val strippedStr = htmlString.replaceAll("<b[^>]*>[a-z]*<//b>", "")
但它似乎保持字符串不变。
知道我做错了什么吗?(也许是错误的转义?)
提前致谢
如果性能不是问题,您可以使用惰性量词将所有内容匹配到</b>
. 额外的//
也是不必要的。
<b[^>]*>.*?</b>
你的代码
val htmlString = "<html><b>test,test</b></html>"
val strippedStr = htmlString.replaceAll("<b[^>]*>.*?</b>", "")
转义字符是\
,不是/
,并且/
不需要首先转义。这不匹配,因为<//b>
输入中没有。
除此之外......不要使用正则表达式来操作 HTML。使用适当的 HTML 解析器和 HTML sanitizer 来预处理输入。