首页 > 解决方案 > 查找除自动链接的降价链接以外的所有网址

问题描述

我正在寻找一种方法来查找所有网址以用降价链接替换它们。但是,在我的字符串中,我已经有一些 URL 已经被 markdown 语法包装了。所以我需要忽略这些情况。JS正则表达式可以做到这一点吗?

这是我目前拥有的:

(?:[^\]\)]|^)(htt\ps?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))

此处不应仅捕获最后一行文本: https ://regex101.com/r/qgm8jN/1

标签: javascriptregex

解决方案


我稍微截断了你的正则表达式(我试图删除变量),随意添加你认为合适的东西。

https://regex101.com/r/iVQvEu/1

主要你需要知道的是负面的看法(http://www.regular-expressions.info/lookaround.html

(?<!not)website

只要website前面没有not

因此,在您的情况下,只要降价符号不在其前面,我就会使用(?<!\]\()它来查找并返回该网站。](

再次随意添加/减去它,但这至少应该为您指明正确的方向。


推荐阅读