Java: у меня есть большая строка html и мне нужно извлечь текст href = «…»
У меня есть эта строка, содержащая большой кусок 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 ... Я на нем, но было бы интересно узнать, что пошло не так и в этом случае ...