用于admin,admin /和admin / more / etc的PHP正则表达式

时间:2010-11-30 09:13:18

标签: php regex

我正在为我的项目构建一个CMS,我正在尝试路由到我的'Admin'控制器。现在我的正则表达式是:

'admin(.*)'

但有了这个,以'admin'开头的所有内容都会匹配。当'admin','admin / foo'和'admin / foo / bar'等存在时,我想匹配路线。不是'adminn'或类似的东西。

希望你能理解我的追求。 Thx / Tobias

4 个答案:

答案 0 :(得分:3)

改变这样的正则表达式:

admin(\/.*)?

答案 1 :(得分:0)

对于字符串,例如admin/foo/bar/salami/pizza,如何preg_match('~^admin\/~', $string)

答案 2 :(得分:0)

两种方法都可以在没有正则表达式的情况下工作

  • 首先搜索最长的子字符串,这样您就不会先匹配admin。因此,使用您的示例,首先检查admin / foo / bar,然后检查admin / foo,然后检查admin。
  • 在斜杠上爆炸()字符串,然后沿着比特向下工作以找出匹配的内容,例如:爆炸('/',$ request)然后检查零件;如果第一个结果是admin,则将其传递给管理控制器,管理控制器可以从其余部分找出路由。

答案 3 :(得分:0)

另一种方法:

$sample_string="admin/foo/bar";

if(in_array("admin", explode("/",$sample_string))){
 //true
}else{
 //false
}

或者你甚至可以用“admin”.....爆炸替换爆炸“/”爆炸。