我有以下代码:
$URI = "controller/method/parms";
$pattern = "a-z0-9_-/";
echo preg_match("/^[". $pattern ."]+$/i", $URI);
由于此/
符号,操作失败并显示此错误:
Warning: preg_match(): Unknown modifier ']'
。但如果我删除该符号,一切都会正常工作。
答案 0 :(得分:2)
转义斜杠并在字符类末尾移动短划线:
$pattern = "a-z0-9_\/-";
preg_match("/^[". $pattern ."]+$/i", $URI);
注意:preg_quote在这种情况下不起作用,因为它逃脱破折号,我不知道为什么。
您还可以使用其他分隔符:
$pattern = "a-z0-9_/-";
preg_match("~^[". $pattern ."]+$~i", $URI);