preg_match函数不接受符号“/”

时间:2017-03-18 12:59:01

标签: php regex

我有以下代码:

  $URI = "controller/method/parms";
  $pattern = "a-z0-9_-/";
  echo preg_match("/^[". $pattern ."]+$/i", $URI);

由于此/符号,操作失败并显示此错误:
Warning: preg_match(): Unknown modifier ']'。但如果我删除该符号,一切都会正常工作。

1 个答案:

答案 0 :(得分:2)

转义斜杠并在字符类末尾移动短划线:

$pattern = "a-z0-9_\/-";
preg_match("/^[". $pattern ."]+$/i", $URI);

注意:preg_quote在这种情况下不起作用,因为它逃脱破折号,我不知道为什么。

您还可以使用其他分隔符:

$pattern = "a-z0-9_/-";
preg_match("~^[". $pattern ."]+$~i", $URI);
相关问题