我有这个包含大量 html 的字符串,并试图从字符串的 href="..." 部分中提取链接。href 可以是以下形式之一:
<a href="..." />
<a class="..." href="..." />
我对正则表达式并没有真正的问题,但由于某种原因,当我使用以下代码时:
String innerHTML = getHTML();
Pattern p = Pattern.compile("href=\"(.*)\"", Pattern.DOTALL);
Matcher m = p.matcher(innerHTML);
if (m.find()) {
// Get all groups for this match
for (int i=0; i<=m.groupCount(); i++) {
String groupStr = m.group(i);
System.out.println(groupStr);
}
}
有人可以告诉我我的代码有什么问题吗?我在 php 中做了这些东西,但是在 Java 中我做错了什么......发生的事情是,每当我尝试打印它时,它都会打印整个 html 字符串......
编辑:只是为了让每个人都知道我正在处理什么样的字符串:
<a class="Wrap" href="item.php?id=43241"><input type="button">
<span class="chevron"></span>
</a>
<div class="menu"></div>
每次我运行代码时,它都会打印整个字符串......这就是问题所在......
关于使用 jTidy ......我正在使用它,但知道在这种情况下出了什么问题也会很有趣......