如何解决在方括号内转义正则表达式
| 我正在尝试在方括号内转义一个括号。$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类列表的前面或后面
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。