0

我正在尝试为我自己的框架创建一个路由器,假设我有一个像这样注册的路由

$f->addRoute("/note/$1/edit/$2", "/note/edit/$1");

这告诉路由器的是,对于给定的字符串,比如/note/2/edit/some/non/sense/url转换为/note/edit/2我该怎么做!?

我已经为此工作了几个小时,但我找不到任何正则表达式!

我会很感激这里的任何帮助。

4

1 回答 1

0
preg_replace('|^/note/(\d+)/edit/.*$|', '/note/edit/$1', '/note/2/edit/some/non/sense/url');

基本上,您必须注意以下几点:

  • 你不想使用'/'作为你的正则表达式分隔符,除非你想在你的正则表达式中转义每个'/',所以我使用了'|' 多于
  • 我使用 \d+ 表示“任何数字”,如果您在这里有非数字值,您可能想要使用 [^/]+ 表示“任何不是正斜杠的东西”
于 2013-09-17T14:30:40.457 回答