匹配路由参数的正则表达式

Regex to match route parameters

我在使用正则表达式时总是有点吃力。当路由设置了参数时,我正在尝试制作一个与路由匹配的正则表达式:

例如:

我目前所做的是为每个路由创建一个正则表达式,然后将当前 URI 与该路由正则表达式进行匹配。

我目前拥有的是:

My regex

在这个例子中,我尝试为路由制作一个正则表达式:/post/{param1}/{param2}。这意味着它应该匹配 /post/ 然后是一个参数和另一个参数,但在 那个参数之后 什么都不匹配。

如您所见:^(\/post\b)(\/.{1,}\/)(.{1,}\b)$ 匹配 /post/what-is-your-name/5,当我添加另一个 / 时,它不再匹配。但是,如果您在 之后 添加字符,则该正则表达式再次开始匹配。

意思是:

  • /post/what-is-your-name/5/ 不匹配
  • /post/what-is-your-name/5/more 匹配

有人知道我如何完成第一个示例吗?

到目前为止,我是一个非常了解正则表达式的人,如果有人看到更好的方法来匹配 URI 和路由,请告诉我。

希望这对您有所帮助

正则表达式:^(?:\/post\b)(?:\/[\w]+){2}$

Regex demo