匹配文件名在< link href =“ / path / ????? / ????? / ????。css”

需要从特定文件夹中的链接标记获取css文件名。
<link href="/assets/49f0ugdf8g/sub/style.css"   -> style.css
目前有
match(`<link .*?href="/assets/(.*?.css)"/i)
返回路径减去“/ assets /”。 是否可以扩展以删除路径的其余部分并返回文件名。     
已邀请:
不使用正则表达式并使用原生JS
String.split
函数会更简单:
var link = document.getElementsByTagName('link')[0]; // or whatever JS to get your link element
var filename = link.href.split('/').pop(); // split the string by the / character and get the last part
    
当然:
match(<link .*?href="/assets/([^/]+.css)"/i)
//                              ^^^^^ change here
我放弃了
?
,因为你可能希望捕获组变得贪婪。在假设“文件”名称中始终至少有一个字符时,也使用
+
而不是
*
。     
首先,要警告。 试试这个:
"/assets/(?:[^/">]+/)*([^/">]*?.css)"
(?:...)
是一个非捕获组。     
尝试:
match(`<link .*?href="/assets/(?:[^/]*/)*(.*?.css)"/i)
    
var link = '<link href="/assets/49f0ugdf8g/sub/style.css">';
var match = link.match(/<link .*?href="(.*)">/i);
var filename = match[1].split('/').pop();
    

要回复问题请先登录注册