javascript - 如何找到给定文本中第一个 backbone.js 标记之前的 url。我尝试了所有的可能性,但无法做到

标签 javascript regex

如何找到给定文本中第一个 backbone.js 标记之前的 url。我尝试了所有可能性,但无法做到。

引用:https://regex101.com/r/rJ1oA8/4

文本:dfjSKsfkfkSFKfdvsfdvsdv https://text.com来自 https://test2.com sdjgdsdh https://backbone.js来自 jfsjfskf https://backbone.js jsvdywfiwqkbfs sfgsaifiwf sfasfk https://fggfgf.com

预期输出:https://test2.com

文本可以有任意数量的 url

最佳答案

我可以建议这个正则表达式:

\bhttps?:\/\/\S*(?=(?:(?!http)[\s\S])*https?:\/\/\S*backbone\.com)

(?:(?!http)[\s\S])* 是一个缓和的贪婪 token ,它确保一个 URL 和另一个具有 Backbone 的 URL 之间的窗口尽可能小。 com.

在 JS 中,要匹配 任何 字符,甚至是换行符,你需要使用 [\s\S] 字符类,或者 JS 特定的 [^]。出于可移植性的原因,我更喜欢 [\s\S]

参见 demo

更好的URL正则表达式,你可以看this SO post或查看 my previous answerDiego Perini's URL regex .

关于javascript - 如何找到给定文本中第一个 backbone.js 标记之前的 url。我尝试了所有的可能性,但无法做到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495985/

相关文章:

Python 3 正则表达式问题

Javascript 正则表达式作为字符串不起作用

regex - 如何将 Fiddler 的自动回复器配置为 "map"主机到文件夹?

javascript - 如何在React中设置增量和减量方法的最大值和最小值

javascript - knockout 点击数据绑定(bind)

java - 拆分句子

javascript - 在正则表达式中转义撇号?

javascript - 使用 HTML 和 Phonegap 设置移动应用程序的大小

javascript - 使用javascript在下拉列表更改时填充表单字段

javascript - Bootstrap和其他库文件的不同版本的jquery