可以使用regexp [duplicate]处理字谜

7gcisfzg  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(99)

此问题在此处已有答案

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个匹配项重叠,因此将第一个匹配项用于帐户。

cbeh67ev

cbeh67ev1#

由于您事先知道组成您所期望的字谜的字符,正如您的required常量已经包含字符bca所指示的那样,您可以构建一个正则表达式,其中每个字符都包含在一个子模式中,该子模式期望它是以下3个字符中的一个,并具有前瞻模式:

const str = 'abcadbca';
console.log(str.match(/(?=.{0,2}b)(?=.{0,2}c)(?=.{0,2}a).{3}/g));

这将输出:

[
  "abc",
  "bca"
]

相关问题