[\\s]*?"); Matcher-6ren">
gpt4 book ai didi

Java 正则表达式模式查找空 HTML/XML 元素

转载 作者:行者123 更新时间:2023-12-02 00:17:37 24 4
gpt4 key购买 nike

我在多行 HTML 文件中查找空 HTML 元素时遇到问题。我的正则表达式是这样的:

Pattern pattern = Pattern.compile("<([a-zA-Z][a-zA-Z0-9]*)[^>]*?>[\\s]*?</\\1>");
Matcher matcher = pattern.matcher(htmlOut);
while (matcher.find())
{
htmlOut = matcher.replaceAll("");
matcher = pattern.matcher(htmlOut);
}

问题是它与任何空标签都不匹配。

仅供引用:相同的正则表达式 <([a-zA-Z][a-zA-Z0-9]*)[^>]*?>[\s]*?</\1>在崇高文本中工作!

有什么办法吗?

最佳答案

这个模式没问题,但你用错了。 replaceAll() 在字符串上调用,而不是在匹配器对象上调用。

此外,无需迭代匹配项 - 一个 replaceAll 就足够了:

htmlOut = htmlOut.replaceAll("<([a-zA-Z][a-zA-Z0-9]*)[^>]*>\\s*</\\1>", "");

不过,您不需要惰性量词 - 但这不会影响匹配结果。

关于Java 正则表达式模式查找空 HTML/XML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com