preg_match - 正则表达式排除子目录

时间:2015-06-29 13:36:12

标签: php regex

我想在用户个人资料页面上显示代码(用户/ uid ) 但排除子目录/子站点。我在后续网站上创建了一个应该返回FALSE的正则表达式:user / uid / forum_topics,但它确实返回TRUE。 ( uid =任何数字)

我的代码与正则表达式:

$regex_profile = '/\buser\/\d*\/?(?!\d)\b/';

if (preg_match($regex_profile, $path))
{
    //Print Activity on User Profile but exclude children
    print render($page['profile_activity_area']); 
}

我对Regex并不熟练。希望有人可以帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您只想在具有/ user / {ID}

等地址的网页上显示代码

然后使用简单的正则表达式

if(preg_match('#\/user\/\d+#', $path)){
  //display code
}

正则表达式意味着路径应该至少有一次或多次/ user / then数字,并且数字之后不能有任何内容。

匹配

  • /用户/ 324

但不匹配

  • /用户/ 234 / ASDF
  • /用户/一个/ asdfa
  • /用户/234234分之234/ xzcv / A
  • / notuser / 234