如何使用正则校验无嵌套、无间隔且内容非空的括号组合字符串
正确正则表达式
^(?:\[[a-zA-Z0-9]+\])+$
如果你的校验规则允许括号内出现下划线,且所用正则引擎的\w定义为「字母+数字+下划线」,可以简化为:
^(?:\[\w+\])+$
规则匹配说明
正则逐点符合所有校验要求:
- 禁止括号嵌套:括号内仅匹配字母/数字,不可能出现
[字符,自然避免嵌套情况 - 括号块之间无额外字符:所有内容都是连续的
[合法内容]单元,没有预留任何空格、特殊字符的匹配位置 - 强制首尾格式:
^后直接匹配[,$前直接匹配],保证字符串以左括号开头、右括号结尾 - 括号内内容要求:
[a-zA-Z0-9]+要求至少1个字母或数字,禁止空内容、空白字符、其他特殊符号
测试效果参考
| 输入字符串 | 匹配结果 | 是否符合预期 |
|---|---|---|
[ABC] | 成功 | 是 |
[ABC][DEF] | 成功 | 是 |
[ABC][def][GH][I] | 成功 | 是 |
[A[BC]] | 失败 | 是 |
[AB] [C] | 失败 | 是 |
[AB]c[DEF] | 失败 | 是 |
[] | 失败 | 是 |
[AB C] | 失败 | 是 |
abc[DEF] | 失败 | 是 |
[ABC]def | 失败 | 是 |
内容的提问来源于stack exchange,提问作者rabun
相关产品推荐
相关产品推荐

