Java:我有一大串html,需要提取href =“…”文本

前端之家收集整理的这篇文章主要介绍了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 ……我正在使用它,但知道在这种情况下出了什么问题会很有趣……

解决方法

.*

这是一个贪婪的操作,它将包含任何字符,包括引号.

尝试类似的东西:

"href=\"([^\"]*)\""

猜你在找的Java相关文章