转义正方括号内的正则表达式
问题描述:
我试图转义方括号内的括号。转义正方括号内的正则表达式
$pattern = "/^[a-zA-Z0-9 _-\(]{1,25}$/";
$str = "TEST (ok)";
if (preg_match($pattern, $str)) {
echo "<br />OK";
} else {
echo "<br />FAIL";
}
这给我的警告:
警告:的preg_match():编译 失败:范围乱序在 字符类在 /var/www/test.php偏移15在线6
失败
外方括号中的转义工作正常。
任何想法?
答
你需要躲避连字符,以及...书面,它将从下划线匹配(ASCII 95)左paren(ASCII 40)。
答
逃避连字符,或者通过移动到前面或焦炭类列表回到