javascript - 查找除自动链接的降价链接以外的所有网址
问题描述
我正在寻找一种方法来查找所有网址以用降价链接替换它们。但是,在我的字符串中,我已经有一些 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
解决方案
我稍微截断了你的正则表达式(我试图删除变量),随意添加你认为合适的东西。
https://regex101.com/r/iVQvEu/1
主要你需要知道的是负面的看法(http://www.regular-expressions.info/lookaround.html)
(?<!not)website
只要website
前面没有not
因此,在您的情况下,只要降价符号不在其前面,我就会使用(?<!\]\()
它来查找并返回该网站。](
再次随意添加/减去它,但这至少应该为您指明正确的方向。
推荐阅读
- ruby-on-rails - 正确访问键和值以处理多条记录
- kotlin - 包裹在堆栈窗格中时图像不会显示 (tornadoFX)
- javascript - 如何使我的搜索功能不区分大小写?
- websphere-liberty - SQLMX/IBM-liberty-datasource:未找到有效的 jdbc 驱动程序
- python - protoc 可执行文件无法在 tensorflow 模型中找到对象检测 .protos 文件
- angular - 是否可以将可观察数据存储到另一个可观察数据中
- mqtt - 蚊子只为每个主题开火
- xaml - 多个 BindingContext 在同一个 ContentPage 上,两个不同的视图?
- c++ - 未定位在有效记录上
- html - 如何实现水平和垂直居中的多个图像之间的固定宽度间距