技术求助:修正匹配深度1-5的平衡括号正则表达式
修正后的正则表达式方案
原正则的问题
- 包含
[^()]规则,允许非括号字符,会错误匹配(x)这类不符合要求的字符串 - 结构逻辑错误,无法精准控制括号嵌套深度,且
{0,5}允许空字符串,违反“深度≥1”的要求 - 未严格保证括号完全平衡,可能匹配到不平衡的括号组合
修正后的正则
pattern = r'^(?:\((?:(?:\((?:(?:\((?:(?:\((?:\(\))*\))*\))*\))*\))|\))*\))+$'
规则说明
^和$锁定字符串首尾,确保全串校验- 分层嵌套结构限制最大嵌套深度为5层,每层仅允许平衡的括号组合,禁止非括号字符
+确保字符串至少包含一组平衡括号,满足深度≥1的要求
验证结果
- 匹配示例:
()()()、((((()))))、(()((()))()) - 不匹配示例:
())()、(((((())))))、(x)
内容的提问来源于stack exchange,提问作者phuck
相关产品推荐
相关产品推荐

