使用Regex查找URL中的特定字符串

Find particular string inside URL with Regex

本文关键字:字符串 Regex 查找 URL 使用      更新时间:2023-09-26

我需要"regex"——在JavaScript中——一个类似的字符串

http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre

我需要提取19232_102032_21111986_n,即http://some.domain.com/v/v1.0-4/.jpg?param=fejrlwfje&list=fklwefljfre之间的图像名称,并将其分配给一个变量。

您可以使用

'/([^'/?]+)'.jpg(?:'?|$)

查看regex演示

图案描述

  • '/-斜线
  • ([^'/?]+)-与/?以外的1个或多个字符匹配的组1(文件名)
  • '.jpg-文字.jpg
  • (?:'?|$)-与?或字符串末尾匹配的非捕获组

var s = 'http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&li‌st=fklwefljfre';
var m  = s.match(/'/([^'/?]+)'.jpg(?:'?|$)/);
document.body.innerHTML = m ? m[1] : "No match!";

试试这个:

var s = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre"
var result = /'/([a-z_0-9]+)'.jpg/.exec(s)[1];

假设没有"?"在要匹配的字符串中,可以尝试:

/'/([^?/]*)('?|$)/.exec("http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre")[1].slice(0,-4)

这将匹配最后一个"/"之后的所有字符,这些字符不是"/"或"?"在"?"之前或字符串的末尾。

slice调用用于删除".jpg"部分。

作为一种替代方案,它可以通过使用String.splitString.substrArray.lastIndexOf函数在没有regex的情况下实现:

var url = "http://some.domain.com/v/v1.0-4/19232_102032_21111986_n.jpg?param=fejrlwfje&list=fklwefljfre",
    url_part = url.split("?")[0],
    img_file = url_part.substr(url_part.lastIndexOf("/")+1).split(".")[0];
console.log(img_file);   // "19232_102032_21111986_n"