Javascript 正则表达式匹配纠结表达式

Javascript 正则表达式匹配纠结表达式,javascript,regex,Javascript,Regex,我有这个字符串: 阿布卡布卡 这个正则表达式: /abca/g 这一个只匹配第一个abca,但我希望它也匹配第二个。您可以对重叠匹配使用前瞻: /(?=(abca))/g 是不完整的,因为as,/(?=(abca))/g正则表达式需要使用特定的JS代码 如果在测试正则表达式,您将得到警告: 这是因为匹配是一个空字符串,abca值是一个子匹配,一个捕获的文本。为了使正则表达式索引前进,您需要告诉JS沿着字符串前进: var re=/(?=(abca))/g; var str='abcabc

我有这个字符串:

阿布卡布卡

这个正则表达式:

/abca/g

这一个只匹配第一个
abca
,但我希望它也匹配第二个。

您可以对重叠匹配使用前瞻:

/(?=(abca))/g
是不完整的,因为as,
/(?=(abca))/g
正则表达式需要使用特定的JS代码

如果在测试正则表达式,您将得到警告:

这是因为匹配是一个空字符串,
abca
值是一个子匹配,一个捕获的文本。为了使正则表达式索引前进,您需要告诉JS沿着字符串前进:

var re=/(?=(abca))/g;
var str='abcabca';
var-res=[];
while((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){//这里我们告诉正则表达式
re.lastIndex++;//要移动的引擎
}//在
res.push(m[1]);
}

document.body.innerHTML=“+JSON.stringify(res,0,4)+”你的意思是重复的
abc
?那么
/(abc)\1/g
?规则是什么?不是一开始?我是说,我想和两个abca比赛。。。这是一个链接,用于测试字符串中第二个
abca
在哪里?只有
abca
后跟
bca
[abc(a]bca)==>2个abca:第一个由[]分隔,第二个由()分隔什么??你真的认为“向前看”在JavaScript中不起作用吗?你检查过我的演示吗?@dev null:Look Behind在JavaScript中不起作用。@anubhava:这是如何匹配的?它只是将正则表达式指针定位在abc
之前。请注意,此模式始终匹配空字符串,这会导致
lastIndex
属性在循环内匹配时不会更新。您可以自己增加它,或者通过在匹配中包含一个字符来解决这个问题。
/(?=(abca))/g
@noob它实际上是将“匹配”捕获到组
1
中,而不是组
0