正则表达式选择超链接

时间:2010-04-21 05:09:33

标签: xpath

我使用以下表达式来选择所有超链接

//一个[@href]

如何编写表达式以选择与此格式匹配的所有超链接

http://abc.com/articles/1

此处http://abc.com/articles/是常量且文章编号增加

3 个答案:

答案 0 :(得分:1)

该表达式看起来像XPath,而不是正则表达式。该特定URL的正则表达式看起来像

^http://abc.com/articles/\d+$

但我猜你必须使用xpath查询来查找超链接,然后使用该正则表达式根据HREF属性过滤它们。

答案 1 :(得分:1)

<a\s.*?href=(?:["'](http://abc.com/articles/([0-9])+)["']).*?>(.*?)</a>

<强>更新

如果你需要xpath表达式,那么它是:

a[starts-with(@href,'http://abc.com/articles/')]

这将返回所有具有以“http://abc.com/articles/”开头的href属性的链接。我希望这能够回答你的问题。

答案 2 :(得分:0)

这有点矫枉过正,但这是我在我的应用程序中用于以纯文本格式查找URL的正则表达式:

(\ B(:(:???HTTPS | FTP |文件):// | WWW \ |的ftp \) ?(:[?! - A-Z0-9 +&安培; @#/%=〜 | \ $ \:\] \(* \) | [?!-A-Z0-9 +功放; @#/%=〜的| \ $ \:\])* ?(:[?! - A-Z0-9 +&安培; @#/%=〜 | \ $ \:\] \(* \) | [A-Z0-9 +&amp; @#/%=〜 | \ $]))