gpt4 book ai didi

javascript - 如何提取字符串中 url 后面的文本?

转载 作者:行者123 更新时间:2023-11-28 16:55:38 30 4
gpt4 key购买 nike

我有一个如下所示的文本

"Here is your result https://polo.felix.com/stat/content/table-1576073323.16.html Please click on the link to see more.."

现在我只想提取链接后的文本请点击链接查看更多内容..

现在可能会发生链接后面没有任何文本的情况,在这种情况下我应该得到一个空字符串。

这就是我尝试做的

message = "Here is your result https://polo.felix.com/stat/content/table-1576073323.16.html Please click on the link to see more.."

if(message.split('html')[1].trim() !== '') {
do_something()
}

但这并不优雅,如果链接以 html 以外的内容结尾,则这将不起作用。

是否有任何正则表达式可以获取文本中网址右侧的内容(如果存在)或返回空字符串?

最佳答案

您可以使用以下正则表达式(捕获组 1 中的结果):

(?:https?:\/{2}\S+\s)(.*)

s = 'Here is your result https://polo.felix.com/stat/content/table-1576073323.16.html Please click on the link to see more..'
r = /(?:https?:\/{2}\S+\s)(.*)/
m = s.match(r)
if(m) console.log(m[1])

匹配以 http://https:// 开头直到下一个空格(含)的 URL,然后将字符串的其余部分捕获到捕获组中.

<小时/>

或者您可以在 ECMA2018+(V8 引擎 +)中使用以下正则表达式 - 请参阅浏览器兼容性的后向断言 here :

(?<=https?:\/{2}\S+\s).*

s = 'Here is your result https://polo.felix.com/stat/content/table-1576073323.16.html Please click on the link to see more..'
r = /(?<=https?:\/{2}\S+\s).*/
m = s.match(r)
if(m) console.log(m[0])

与之前的正则表达式相同,只是使用正向查找来确保 URL 位于前面而不是匹配它。正则表达式匹配是 URL 后面字符串的剩余部分。

关于javascript - 如何提取字符串中 url 后面的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291283/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com