在PHP中部分字符串标记替换

时间:2013-09-17 14:04:37

标签: php regex string replace converter

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

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

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

我一直在研究这个问题好几个小时但是我找不到任何正则表达式了!!

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

1 个答案:

答案 0 :(得分:0)

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

基本上,你必须小心一些事情:

  • 你不想使用'/'作为你的正则表达式分隔符,除非你想要逃避你的正则表达式中的每个'/',所以我用'|'上述
  • 我使用了\ d +暗示'任意数字',如果你在这里有非数字值,你可能想要使用[^ /] +,这意味着'任何不是正斜线的东西'