如何使用正则表达式拆分带有括号和逗号的字符串?

How Do I split a string with parentheses and commas using regex?

"Func(1,2),Func(Sub(1,Func(true)),2),Func(Sub(1,false),3)"
[1] = "Func(1,2)"
[2] = "Func(Sub(1,Func(true)),2)"
[3] = "Func(Sub(1,false),3)"

我有这个字符串。而且我必须使用 pcre-regex 将其分成 X 个部分。这些部分应该在逗号处分开。最让我头疼的是这些函数字符串还可能包含更多的子函数字符串。所以我想只能通过计算括号来确定拆分位置。

/.*(?=\().*(?=\)\,)/gU

我解决这个问题的所有尝试都没有奏效。

使用递归正则表达式

(?:\w+(?:\((?:(?:[^()]+|(?R))*)\)),?)+

demo and some explanations