我正在尝试构建一个站点地图并解析href
没有的 s的 html 正文#
(因为带有哈希的那些只是某些内容页面 html 中的子章节链接)。
我现在的正则表达式:<a\\s[^>]*href\\s*=\\s*\"([^\"]*)\"[^>]*>(.*?)</a>
我想我应该使用[^#]
或!#
排除#
from href
s,但无法通过尝试和谷歌搜索来解决它。提前感谢您帮助我!
完成了。#
刚刚在[^\"]
块中插入了。:D
<a\\s[^>]*href\\s*=\\s*\"([^\"#]*)\"[^>]*>(.*?)</a>
您不应该使用正则表达式来解析 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;
...
}
比使用正则表达式要轻松得多,嗯!