我正试图逃避方括号内的括号。
$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的字符类 第6行的/var/www/test.php
FAIL
在方括号外,逃逸工作正常。
有什么想法吗?
答案 0 :(得分:2)
你也需要转义连字符......如上所述,它将从下划线(ASCII 95)到左边的paren(ASCII 40)匹配。
答案 1 :(得分:0)
转义连字符或将其移到char类列表的前面或后面