gpt4 book ai didi

java - 无法使用模式匹配删除java中所有出现的html标签

转载 作者:行者123 更新时间:2023-12-01 13:43:08 24 4
gpt4 key购买 nike

我有很长的 html 字符串,其中有多个

             <dl id="divmap"> .... </dl>.

我想删除此之间的所有内容。

我用java编写了这段代码:

                                   String triphtml= htmlString;
System.out.println("triphtml is "+triphtml);

System.out.println("test1 ");
final Pattern pattern = Pattern.compile("(<dl id=\""+selectedArray[i]+"\">)(.+?)(</dl>)",
Pattern.DOTALL);
final Matcher matcher = pattern.matcher(triphtml);
// matcher.find();
System.out.println("pattern of test1 is : "
+ pattern); // Prints
System.out.println("MATCHER of test1 is : "
+ matcher); // Prints
System.out.println("MATCH COUNT of test1 a: "
+ matcher.groupCount()); // Prints
System.out.println("MATCH COUNT of test1 a: "
+ matcher.find()); // Prints
while (matcher.find()) {
// System.out.println("MATCH GP 3: "+matcher.group(3).substring(1,10));

for (int z = 0; z <= matcher.groupCount(); z++) {
String extstr = matcher.group(z);
System.out.println("matcher group of "+z+" test1 is " + extstr);
System.out.println("ext a of test1 is " + extstr);
triphtml = triphtml.replaceAll(extstr, "");
System.out.println("Group found of test1 is :\n" + extstr);
}

}

但是此代码删除了一些 dl,并且一些保留在 triphtml 中。我不知道为什么会发生这种事。这里的 triphtml 是一个有多个 dl 的 html 字符串。请帮助我如何删除所有之间的内容

    <dl id="divmap">.

提前致谢。

最佳答案

我建议不要对 html 使用正则表达式。只需使用任何用于遍历 xml/html 的库即可。

例如JSoup

关于java - 无法使用模式匹配删除java中所有出现的html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539152/

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