如何用正则表达式捕获URL最后一个斜杠后的所有内容
用正则表达式提取URL最后一个斜杠后的文件名
嘿,这个需求其实挺常见的,用正则表达式就能轻松搞定!我给你捋清楚思路和具体实现:
核心思路
我们要精准捕获最后一个/之后的所有字符,不管文件名里包含特殊字符(比如你的例子里的+),都能完整提取。
正则表达式方案
直接用这个正则就可以:/[^/]+$/
正则拆解
[^/]+:匹配任意不是斜杠的字符,+表示至少匹配1个(确保不会拿到空内容)$:锚定到字符串的末尾,保证我们拿到的是最后一个斜杠后面的内容,不会匹配到前面的路径片段
代码实现(以JavaScript为例)
结合你给出的URL变量,具体代码如下:
let url1 = "https://cdn0.tnwcdn.com/files/2020/01/exmaple1.jpg"; let url2 = "http://www.clker.com/cliparts/1/7/b/9/11974343961963318467fl.png"; let url3 = "https://images.squarespace-cdn.com/content/01+Seth+Easy+v1.gif"; // 定义正则表达式 const getFileNameRegex = /[^/]+$/; // 提取每个URL的文件名 const fileName1 = url1.match(getFileNameRegex)[0]; const fileName2 = url2.match(getFileNameRegex)[0]; const fileName3 = url3.match(getFileNameRegex)[0]; console.log(fileName1); // 输出 exmaple1.jpg console.log(fileName2); // 输出 11974343961963318467fl.png console.log(fileName3); // 输出 01+Seth+Easy+v1.gif
补充说明
如果遇到URL末尾带有斜杠的情况(比如https://example.com/files/),这个正则会匹配到空字符串。要是需要过滤这种场景,可以先去掉末尾的斜杠再匹配,或者在代码里加个非空判断即可。
内容的提问来源于stack exchange,提问作者faris97
相关产品推荐
相关产品推荐

