正则表达式匹配右括号后的逗号
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(/,(?=[\[\(])/);
在Javascript中,我试图拆分以下字符串
var s1 = "(-infinity, -3],(-3,-2),[1,infinity)";
放入数组
["(-infinity, -3]","(-3,-2)","[1,infinity)"]
通过使用此语句
s1.split(/(?=[\]\)]),/);
解释一下,我想在右方括号或圆括号后用逗号分隔字符串。我使用 Look Ahead (?=[\]\)]),
来执行此操作,但它不匹配任何逗号。当我将其更改为 (?![\]\)]),
时,它匹配每个逗号。请提出我的正则表达式中的问题。
你的逻辑是倒退的。 (?=...)
是前瞻组,不是后视组。这意味着 s1.split(/(?=[\]\)]),/);
仅当下一个字符同时为 ]
或 )
和 ,
时才匹配,这是不可能的。
试试这个:
s1.split(/,(?=[\[\(])/);