Java: Mam duży ciąg html i muszę wyodrębnić tekst href = „…”

Mam ten ciąg zawierający dużą część kodu HTML i próbuję wyodrębnić link z części ciągu href = "...". Href może być w jednej z następujących form:

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

Naprawdę nie mam problemu z wyrażeniem regularnym, ale z jakiegoś powodu, gdy używam następującego kodu:

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

   }
  }

Czy ktoś może mi powiedzieć, co jest nie tak z moim kodem? Zrobiłem to w php, ale w Javie robię coś nie tak ... Dzieje się tak, że wypisuje cały ciąg html, gdy próbuję go wydrukować ...

EDYCJA: Tylko po to, aby wszyscy wiedzieli, jakiego rodzaju sznurkiem mam do czynienia:

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

Za każdym razem, gdy uruchamiam kod, drukuje cały ciąg ... To jest problem ...

A jeśli chodzi o używanie jTidy ... jestem na tym, ale byłoby interesujące wiedzieć, co poszło nie tak w tym przypadku ...

questionAnswers(7)

yourAnswerToTheQuestion