Ruby regexp匹配逗号,但忽略括号中的逗号

Kur*_*urt 5 ruby regex

我正在尝试通过regexp拆分参数列表.

这是一个带有参数列表的字符串:

"a = b, c = 3, d = [1,3,5,7], e, f = g"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

["a = b", "c = 3", "d = [1,3,5,7]", "e", "f = g"]
Run Code Online (Sandbox Code Playgroud)

我试过一个前瞻,但Ruby不允许具有动态范围的lookbehinds,所以这不起作用:

/(?<!\[),(?!\w*\])/
Run Code Online (Sandbox Code Playgroud)

我怎么能告诉正则表达式忽略方括号中的所有内容?

sam*_*uil 8

也许这样的东西对你有用:

 str.scan(/(?:\[.*?\]|[^,])+/)
Run Code Online (Sandbox Code Playgroud)

编辑后再思考.

在某些嵌套括号中,简单的非贪心匹配器会失败.