加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:53:29 所属栏目:Java 来源:网络整理
导读:我有这个字符串包含一大块html,我试图从字符串的href =“…”部分提取链接. href可以采用以下形式之一: a href="..." /a class="..." href="..." / 我没有真正的正则表达式的问题,但出于某种原因我使用以下代码: String innerHTML = getHTML(); Pattern p
我有这个字符串包含一大块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="([^"]*)""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读