Java: Ich habe eine große HTML-Zeichenfolge und muss den Text href = “…” extrahieren

Ich habe diese Zeichenfolge mit einem großen Teil HTML und versuche, den Link aus dem Teil href = "..." der Zeichenfolge zu extrahieren. Die href kann in einer der folgenden Formen vorliegen:

<a href="..." />
<a class="..." href="..." />

Ich habe nicht wirklich ein Problem mit Regex, aber aus irgendeinem Grund, wenn ich den folgenden Code verwende:

        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);

   }
  }

Kann mir jemand sagen, was mit meinem Code nicht stimmt? Ich habe dieses Zeug in PHP gemacht, aber in Java mache ich irgendwie etwas falsch ... Was passiert ist, dass es die gesamte HTML-Zeichenfolge druckt, wenn ich versuche, es zu drucken ...

EDIT: Nur damit jeder weiß, mit was für einer Saite ich es zu tun habe:

<a class="Wrap" href="item.php?id=43241"><input type="button">
    <span class="chevron"></span>
  </a>
  <div class="menu"></div>

Jedes Mal, wenn ich den Code ausführe, wird der gesamte String gedruckt ... Das ist das Problem ...

Und über die Verwendung von jTidy ... Ich bin dabei, aber es wäre interessant zu wissen, was auch in diesem Fall schief gelaufen ist ...

Antworten auf die Frage(7)

Ihre Antwort auf die Frage