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 ...