我正在尝试通过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)
我怎么能告诉正则表达式忽略方括号中的所有内容?
也许这样的东西对你有用:
str.scan(/(?:\[.*?\]|[^,])+/)
Run Code Online (Sandbox Code Playgroud)
编辑后再思考.
在某些嵌套括号中,简单的非贪心匹配器会失败.