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
。