Java正则表达式:没有哈希的href

时间:2012-12-07 07:17:07

标签: java html regex href

我正在尝试构建一个站点地图并解析没有href的{​​{1}}的html正文(因为那些带有哈希的只是某些内容页面htmls中的子章节链接)。

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

2 个答案:

答案 0 :(得分:1)

完成它。只需在#块中插入[^\"]。 :d

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

答案 1 :(得分:1)

您不应该使用正则表达式来解析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;
    ...
}

比使用正则表达式更加无痛,呃!