我试图转义方括号内的圆括号。
$pattern = "/^[a-zA-Z0-9 _-'(]{1,25}$/";
$str = "TEST (ok)";
if (preg_match($pattern, $str)) {
echo "<br />OK";
} else {
echo "<br />FAIL";
}
这给了我一个警告:
警告:preg_match(): Compilation失败:范围无序偏移量为15英寸的字符类/var/www/test.php第6行
失败
方括号外的转义正常。
任何想法?
还需要转义连字符…如前所述,它将匹配从下划线(ASCII 95)到左括号(ASCII 40)。
转义连字符或将其移动到char类列表的前面或后面