正则表达式匹配右括号后的逗号

Regex match commas after a closing parentheses

在Javascript中,我试图拆分以下字符串

var s1 = "(-infinity, -3],(-3,-2),[1,infinity)";

放入数组

["(-infinity, -3]","(-3,-2)","[1,infinity)"]

通过使用此语句

s1.split(/(?=[\]\)]),/);

解释一下,我想在右方括号或圆括号后用逗号分隔字符串。我使用 Look Ahead (?=[\]\)]), 来执行此操作,但它不匹配任何逗号。当我将其更改为 (?![\]\)]), 时,它匹配每个逗号。请提出我的正则表达式中的问题。

你的逻辑是倒退的。 (?=...) 是前瞻组,不是后视组。这意味着 s1.split(/(?=[\]\)]),/); 仅当下一个字符同时为 ]), 时才匹配,这是不可能的。

试试这个:

s1.split(/,(?=[\[\(])/);