用于提取具有指定属性的链接的正则表达式

发布于 2024-10-29 11:24:57 字数 281 浏览 1 评论 0原文

我正在尝试构建正则表达式来从没有 rel="nofollow" 的文本中提取链接。

示例:

aiusdiua asudauih aguuia

谢谢!

I'm trying to build regex to extract links from text which have not rel="nofollow".

Example:

aiusdiua asudauih <a rel="nofollow" hre="http://uashiuadha.asudh/adas>adsaag</a> uhwaida <br> asdgydug <a href="http://asdha.sda/uduih/dufhuis>aguuia</a>

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流年里的时光 2024-11-05 11:24:57

以下正则表达式将完成这项工作:

<a (?![^>]*?rel="nofollow")[^>]*?href="(.*?)"

所需的 url 将位于捕获组 #1 中。例如,在 Ruby 中,它会是:

if input =~ /<a (?![^>]*?rel="nofollow")[^>]*?href="(.*?)"/
    match = $~[1]
end

由于它在负向先行中的 rel 之前接受 [^>]*?href< /code> 或其他任何内容都可以出现在 rel 之前。如果href出现在rel之后,当然也可以。

The following regex will do the job:

<a (?![^>]*?rel="nofollow")[^>]*?href="(.*?)"

The wanted urls will be in the capture group #1. E.g. in Ruby it would be:

if input =~ /<a (?![^>]*?rel="nofollow")[^>]*?href="(.*?)"/
    match = $~[1]
end

Since it accepts [^>]*? before rel in the negative lookahead, href or anything else can come before rel. If href comes after rel, it'll of course also be ok.

生生漫 2024-11-05 11:24:57

试试这个
<(?:A|AREA)\b[^<>]*?(?!rel="nofollow")[^<>]*?href=['"]([^ >"]*)[^>]*?>

如果您使用 .net 正则表达式,则

<(?:A|AREA)\b[^<>]*?(?!rel="nofollow")[^<>]*?href=['"](?<URL>[^>"]*)[^>]*?>

数据位于名为 URL 的组或组 1 中

Try this
<(?:A|AREA)\b[^<>]*?(?!rel="nofollow")[^<>]*?href=['"]([^>"]*)[^>]*?>

if you are using .net regex then

<(?:A|AREA)\b[^<>]*?(?!rel="nofollow")[^<>]*?href=['"](?<URL>[^>"]*)[^>]*?>

data lies in group named URL or group 1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文