正则表达式组

Regular expression groups

致所有正则表达式专家!我正在尝试弄清楚如何使用正则表达式将我的 url 分组。

示例:

site.com/user/account/info/settings

我希望能够捕获 user/accout/info url NOT /settings

有谁能接受这个挑战并好心帮助我吗?谢谢!

如果你想获得 URL 的开头,试试这个:

(\/.*\/(?!.*\/.+))

输入:

site.com/foo/remove-me/
site.com/user/account/info/settings
site.com/foo/bar/remove-me
site.com/foo/remove-me?param1=true&param2=hello+world

输出:

/foo/
/user/account/info/
/foo/bar/
/foo/

https://regex101.com/r/yI5rG4/2

在考虑了您在 post 下的所有评论后,我了解到您想获取控制器名称提取的最后一段。因此试试这个:

(?:\/(?!.*\/.+))([^\?\n]*)

用于这些输入:

site.com/foo/remove-me/
site.com/user/account/info/settings
site.com/foo/bar/remove-me
site.com/foo/remove-me?param1=true&param2=hello+world

组 1 的输出:

remove-me/
settings
remove-me
remove-me

在这里测试:https://regex101.com/r/kR5tX6/2