求助:如何用正则表达式捕获带重复结构的分组内容
正则表达式捕获完整条件分组解决方案
输入字符串
DEMO1 in ( "test1", "test2", "test3"), CODE_ID in ( "test4", "test5", "test6")
期望捕获结果
Match 1 = DEMO1 in ( "test1", "test2", "test3") Match 2 = CODE_ID in ( "test4", "test5", "test6")
解决方案正则
使用以下正则表达式并开启全局匹配(g修饰符):
(\w+\s+in\s+\(.*?\))
正则说明
\w+\s+in\s+:匹配变量标识符(如DEMO1、CODE_ID),后跟空格、in关键字及后续空格\(:匹配左括号((需转义,因为括号在正则里是特殊字符).*?:非贪婪模式匹配任意字符,确保只匹配到当前分组对应的右括号为止,避免过度匹配到后续分组内容\):匹配右括号)(同样需转义)- 整个表达式被包裹在捕获组
()中,用于提取完整的条件语句
扩展说明
如果括号内存在嵌套结构(比如更复杂的嵌套表达式),可以改用平衡组正则实现更严谨的匹配,但针对当前示例的简单场景,上述正则已足够覆盖需求。开启全局匹配后,无论有多少个同类条件分组,都能逐一捕获。
内容的提问来源于stack exchange,提问作者vscoder
相关产品推荐
相关产品推荐

