此问题在此处已有答案:
How can I match overlapping strings with regex?(6个答案)
4天前关闭。
这是我要求
const input = 'abcadbca';
const required = 'bca';
输入包含3种可能性的字谜:x一个一个一个x,x一个一个一个x,x一个一个一个x,x一个一个二个x;这是所有可以选择使用regexp
?我尝试了,但没有得到结果:
const str = 'abcadbca';
const reg = str.match(/(a|b|c)/g);
console.log(reg);
结果预期:[a,b,c,][b,c,a],[b,c,a]
;结果应为[a,b,c],[b,c,a]
-前2个匹配项重叠,因此将第一个匹配项用于帐户。
1条答案
按热度按时间cbeh67ev1#
由于您事先知道组成您所期望的字谜的字符,正如您的
required
常量已经包含字符b
、c
和a
所指示的那样,您可以构建一个正则表达式,其中每个字符都包含在一个子模式中,该子模式期望它是以下3个字符中的一个,并具有前瞻模式:这将输出: