【发布时间】:2016-11-28 11:34:37
【问题描述】:
我有一个字符串,我想使用 '|' 将其拆分为数组字符但不是'\|':
var a = 'abc\&|\|cba';
var b = a.split(/([^\\])\|/);
结果:
b = ["abc", "&", "|cba"]
预期输出:
b = ["abc\&", "\|cba"]
基本上我无法在 .split() 函数中正确使用捕获组。
【问题讨论】:
-
澄清一下:你有
var a = 'abc\\&|\\|cba';(=abc\&|\|cba) 还是真的var a = 'abc\&|\|cba';(=abc&||cba)?此外,这里不需要捕获组,您需要后视,但由于 JS 正则表达式风格中缺少它,因此您需要 match 您需要的字符串。 -
如果需要用“|”分隔提取的单词您是否故意只需要以
["abc\&", "cba"]之类的字母开头的拆分词?否则您的数组将根据您的字符串变量 a ->["abc\&", "\", "cba"]拆分如下 -
@WiktorStribiżew - 我有 'abc\&|\|cba 是单转义。
标签: javascript regex split regex-negation capturing-group