Regex 重复表达式直到它到达括号的末尾?

Regex 重复表达式直到它到达括号的末尾?,regex,expression,regex-group,Regex,Expression,Regex Group,我一直在使用Regx101,一直在处理表达式,但是我不知道如何重复表达式,直到到达某个字符(结束括号“')) 我试过[^]*它可以工作,但不会重复该表达式 这是我迄今为止的表达: 创建\s+表\s+(\w*)(\s+(\w*)\s+(\w*)[,][^]* 我试图让(\s+(\w*)\s+(\w*)[,]部分重复,直到到达括号的末尾 我的测试字符串是: 创建表tableName(columnName、type、primary、columnName2、type2) 以下是我得到的结果: 预期结果

我一直在使用Regx101,一直在处理表达式,但是我不知道如何重复表达式,直到到达某个字符(结束括号“'))

我试过[^]*它可以工作,但不会重复该表达式

这是我迄今为止的表达: 创建\s+表\s+(\w*)(\s+(\w*)\s+(\w*)[,][^]*

我试图让(\s+(\w*)\s+(\w*)[,]部分重复,直到到达括号的末尾

我的测试字符串是: 创建表tableName(columnName、type、primary、columnName2、type2)

以下是我得到的结果:

预期结果应包括第2列和第2类作为各自的单独组


欢迎提供任何帮助以及我尚未尝试过的任何解决方案。

不完全确定您到底想要什么,但以下示例

echo 'CREATE TABLE tableName(columnName, type, primary, columnName2, type2)' \
| perl -nle '/CREATE\s+TABLE\s+(\w*)\s*\((\s*(\s*\w+ *,)+(\s*\w+)?)/ && print "$1\n$2"'
或者使用
/x
修饰符的可读性稍高的版本

echo 'CREATE TABLE tableName(columnName, type, primary, columnName2, type2)' \
| perl -nle '/CREATE\s+TABLE\s+(\w*) \s* \( (\s*(\s*\w+\s*,)+ (\s*\w+)? )/x && print "$1\n$2"'
给出这个输出

tableName
columnName, type, primary, columnName2, type2
请用您试图匹配的示例数据和预期结果回答您的问题。链接到您的regex101沙盒也会很有帮助。