Javascript 正则表达式用逗号拆分,但不在方括号内,也不在括号内

Javascript 正则表达式用逗号拆分,但不在方括号内,也不在括号内,javascript,regex,split,Javascript,Regex,Split,我有这根绳子 StudentInfo[id] as stu_id, StudentInfo[ssn] as stu_ssn, verylong.library.path.ScoreInfo[min_points, max_points] as sinfo, left_join((id),(customer_id)), reference.dilino[(greed,greed)], reference.dilino2[dilino], reference.dilino3[reference.di

我有这根绳子

StudentInfo[id] as stu_id, StudentInfo[ssn] as stu_ssn, verylong.library.path.ScoreInfo[min_points, max_points] as sinfo, left_join((id),(customer_id)), reference.dilino[(greed,greed)], reference.dilino2[dilino], reference.dilino3[reference.dilino4[(kaktus,kaktus2)],reference.dilino5[(kaktus3,kaktus4)]], reference.dilino6[reference.dilino4[(kaktus,kaktus2),dilino]
我想分到这一步

StudentInfo[id] as stu_id
StudentInfo[ssn] as stu_ssn
verylong.library.path.ScoreInfo[min_points, max_points] as sinfo
left_join((id),(customer_id))
reference.dilino[(greed,greed)]
reference.dilino2[dilino]
reference.dilino3[reference.dilino4[(kaktus,kaktus2)]
reference.dilino5[(kaktus3,kaktus4)]]
reference.dilino6[reference.dilino4[(kaktus,kaktus2),dilino]
我现在有了这个正则表达式

/,(?=[^\]]*(?:\[)|[^\)]*(?:\()|$)/gm 

但是它不好:(你能帮我吗?

你可以使用这样的正则表达式:
,(?=[\s\w](?!\w+[\)\]])

试试这个。看演示


为什么要这样做?这在文件中,我必须解析为UIARRAY。另外,为什么要在第三个到最后一个项目和第二个到最后一个项目之间的逗号上拆分?看起来不应该因为嵌套的括号而拆分。最后一项没有正确平衡的括号。如果这真的是你的输入,那就太乱了。你不能用正则表达式解析编程语言。使用诸如“是”之类的解析器,最后一个]丢失抱歉,复制粘贴错误。。。我希望用逗号拆分,不要在方括号内,也不要在方括号内,所以简单但不简单的正则表达式:(-1:没有解释,更详细,它似乎被“黑客”在一起。请参阅。提示:要正确地执行此操作,您将需要一个更强大的引擎,如PCRE或.NET,由于嵌套的性质,您将需要递归。@HamZa-OP可以调试正则表达式(链接)。正则表达式本身并不简单。我认为你不应该投反对票(如果你不投反对票,我同意),因为没有任何解释。没有简单的方法?忽略[()]中的逗号?@lostmind“正则表达式本身并不简单”,如果它不简单,那么这是另一个详细解释正则表达式如何工作的原因。我投了反对票,因为它被黑客攻击在一起,他甚至没有警告OP当结构变得更加嵌套时可能遇到的问题。-1,这个答案对OP之外的任何人都是无用的(事实上对他们也是如此).
(?![^)(]*\([^)(]*?\)\)),(?![^\[]*\])