正则表达式匹配URL末尾的文件名

Jua*_*uan 25 javascript regex

有这个文字:

http://img.oo.com.au/prod/CRWWBGFWG/1t44.jpg
Run Code Online (Sandbox Code Playgroud)

和其他文本一样,最后一个1可以是任何其他数字,最后一个44也可以是任何其他数字,我需要一个匹配的正则表达式/1t44.jpg.到目前为止我尝试过的所有内容(/.+?\.([^\.]+)$)都匹配第一个斜杠(//img.oo.com.au/prod/CRWWBGFWG/1t44.jpg).

我正在使用javascript,所以RegexPal上的任何工作应该这样做.

提前致谢.

Sco*_*pey 48

这是一个简单的正则表达式,它将匹配最后一个之后的所有内容/:

/[^/]*$
Run Code Online (Sandbox Code Playgroud)


jfr*_*d00 28

如果要将文件名与非常特定的文件扩展名匹配,可以使用以下内容:

/\/\dt\d\d\.jpg$/
Run Code Online (Sandbox Code Playgroud)

匹配:

/\/[^\/]+$/
Run Code Online (Sandbox Code Playgroud)

或者,如果您真的只想要文件名(无论是在带有任何文件扩展名的最后一个斜杠之后),那么您可以使用:

/\/\dt\d\d\.jpg$/
Run Code Online (Sandbox Code Playgroud)

匹配:

/\/[^\/]+$/
Run Code Online (Sandbox Code Playgroud)

在您的示例字符串中http://img.oo.com.au/prod/CRWWBGFWG/1t44.jpg,这两个字符串都匹配/1t44.jpg.第一个显然更具限制性,因为它需要特定的文件名格式.第二个匹配任何文件名.


其他选择.在node.js开发中,您可以使用该path模块并使用它path.parse()来分解其所有各种组件的路径.

并且,为浏览器编写了各种库,这些库也将分解其组件的路径.


Hem*_*ock 9

正如Johnsyweb所说,这里并不需要定期快递.AFAIK最快的方法是使用lastIndexOfsubstr.

str.substr(str.lastIndexOf('/'));
Run Code Online (Sandbox Code Playgroud)