我正在寻找一个正则表达式在逗号分割字符串。听起来很简单,但还有另一个限制。字符串上的参数可以用括号括起来,逗号不能分割字符串。正则表达式来拆分参数
例子:
1, 2, 3, add(4, 5, 6), 7, 8
^^^ ! ! ^^
该字符串应该只标有逗号分裂^,而不是用!
我发现了一个解决方案,在这里:A regex to match a comma that isn't surrounded by quotes
正则表达式:
,(?=([^\(]*\([^\)]*\))*[^\)]*$)
但我的字符串可能更加复杂:
1, 2, 3, add(4, 5, add(6, 7, 8), 9), 10, 11
^^^ ! ! ! ! ! ^^
该字符串的结果是错误的,我不知道如何解决这个问题,或者如果它甚至有可能 常用表达。
有没有人知道如何解决这个问题?
感谢您的帮助!
尽量避免使用',(?=([^ \(] * \([^ \)] * \))* [^ \)] * $)' ,这是最后的手段。 –
是只能使用括号或者使用关键字add(...)吗? –
@LoicM。 “添加”仅仅是一个例子,可以是其他任何东西。主要观点是括号中的逗号不应该将字符串拆分! –