【问题标题】:Java Regular Expression: href without hashJava正则表达式:没有哈希的href
【发布时间】:2023-03-31 18:48:02
【问题描述】:

我正在尝试构建站点地图并解析没有 #hrefs 的 html 正文(因为带有哈希的只是某些内容页面 html 中的子章节链接)。

我现在的正则表达式:<a\\s[^>]*href\\s*=\\s*\"([^\"]*)\"[^>]*>(.*?)</a> 我想我应该使用[^#]!##hrefs 中排除,但仅通过尝试和谷歌搜索无法解决它。提前感谢您帮助我!

【问题讨论】:

    标签: java html regex href


    【解决方案1】:

    做到了。刚刚在[^\"] 块中也插入了#。 :D

    <a\\s[^>]*href\\s*=\\s*\"([^\"#]*)\"[^>]*>(.*?)</a>
    

    【讨论】:

    • 如果您正在尝试并尝试但它不起作用,请多尝试一下。 :)
    【解决方案2】:

    您不应该使用正则表达式来解析 HTML。

    最好使用 HTML 解析器,例如 http://jsoup.org 然后

    Document doc = Jsoup.parse(input);
    Elements links = doc.select("a[href]");
    
    for (Element each: links) {
        if (each.attr("href").startsWith("#")) continue;
        ...
    }
    

     

    比使用正则表达式轻松多了,嗯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2017-12-10
      • 2013-05-04
      相关资源
      最近更新 更多