如何使用正则表达式获取最后一段URL

Mat*_*att 9 regex perl url-rewriting

我有一个网址:

www.domain.com/first/second/last/
Run Code Online (Sandbox Code Playgroud)

如何获得斜杠之间的最后一个术语?即last使用正则表达式?

请注意,URL可能只是:

www.domain.com/last/ 
Run Code Online (Sandbox Code Playgroud)

要么:

www.domain.com/first/second/third/fourth/last/
Run Code Online (Sandbox Code Playgroud)

我需要提取最后一个术语,以便在使用PERL和REGEX的Zeus Server的Request Rewrite模块中使用.

更新

在实现了一些答案之后,我才意识到我只需要在某个目录中的URL上进行匹配.

www.domain.com/directory/first/second/last/ 
Run Code Online (Sandbox Code Playgroud)

应该回来last.鉴于:

www.domain.com/first/second/last/ 
Run Code Online (Sandbox Code Playgroud)

不应该返回匹配.

Jos*_*ber 21

这是一个简单的正则表达式:

[^/]+(?=/$|$)
Run Code Online (Sandbox Code Playgroud)

应该匹配你扔的任何东西.


如果要查看特定目录,请使用以下命令:

/directory.*/([^/]+)/?$
Run Code Online (Sandbox Code Playgroud)

并且您的结果将在第一个捕获组中.

  • 这不适用于查询字符串(它捕获查询字符串)https://regex101.com/r/Oo3Wk7/1 (2认同)

Ada*_*ner 7

这个正则表达式(约瑟夫答案的略微修改版本)应为您提供最后一段,减去斜杠。

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

您的结果将是第一个捕获组。