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

时间:2018-01-05 13:40:08

标签: php regex pcre

"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部分。部分应以逗号分隔。让我最麻烦的是这些函数字符串还可以包含更多的子函数字符串。所以我想通过计算parantheses来识别分裂位置是唯一可能的。

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

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

1 个答案:

答案 0 :(得分:1)

使用递归正则表达式

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

demo and some explanations