You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP正则表达式如何允许匹配a-Z、0-9、()及[]字符?

解决正则表达式允许方括号[]的问题

嘿,刚接触正则确实容易在特殊字符上踩坑,你猜的没错——方括号在正则的字符集(就是[]包裹的部分)里属于特殊字符,直接加进去会出问题,得稍微处理一下才行!

两种可行的写法

1. 转义方括号(最稳妥,新手推荐)

把[和]都用反斜杠\转义,这样正则就会把它们当成普通字符处理。最终的正则表达式是:

/^[a-zA-Z0-9()\[\]]+$/

解释一下:

  • ^ 和 $ 分别匹配字符串的开头和结尾,确保整个字符串都符合规则(不会出现前面合法后面非法的情况)
  • [a-zA-Z0-9()\[\]] 是允许的所有字符集合:大小写字母、数字、圆括号,以及转义后的方括号
  • + 表示至少要有一个合法字符(如果需要允许空字符串,可以把+改成*)

2. 把方括号放在字符集的开头/结尾(不用转义)

在正则的字符集里,如果把[放在最开头,或者把]放在最结尾,它们会被当成普通字符,不需要转义。比如:

/^[[a-zA-Z0-9()]]+$/
// 或者
/^[a-zA-Z0-9()[]]+$/

不过这种写法虽然少打了两个反斜杠,但对新手来说可读性稍差,容易搞混,还是转义的写法更直观。

测试小例子

  • 匹配成功的字符串:Hello123()[]、abc[]()、123[]
  • 匹配失败的字符串:Hello!、abc@123、[]{}()(因为包含了大括号)

内容的提问来源于stack exchange,提问作者seikzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:08:29