问题描述
|
我正在尝试在方括号内转义一个括号。
$pattern = \"/^[a-zA-Z0-9 _-\\(]{1,25}$/\";
$str = \"TEST (ok)\";
if (preg_match($pattern,$str)) {
echo \"<br />OK\";
} else {
echo \"<br />FAIL\";
}
这给了我警告:
警告:preg_match():编译
失败:范围乱序
字符类,偏移量为15 in
第6行的/var/www/test.PHP
失败
在方括号之外,转义效果很好。
有任何想法吗?
解决方法
您还需要转义连字符...如所写,它将与下划线(ASCII 95)到左括号(ASCII 40)相匹配。
,转义连字符或将其移到char类列表的前面或后面