regex 匹配所有非连续重复模式的正则表达式

6ljaweal  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(119)

我有一个很长的字符串,它的每个字符要么是一个数字[-9],要么是一个小写字母[a-z],如下所示
“0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp”
我正在寻找的是一个正则表达式,它匹配字符串中多次出现的所有非连续模式,我希望输出像下面的例子一样
粗体部分是匹配的部分
“0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp”

gkn4icbw

gkn4icbw1#

正则表达式:(..+)(?=.*?(\1))


的数据
参考文献

const regex = /(..+)(?=.*?(\1))/gm;

// Alternative syntax using RegExp constructor
// const regex = new RegExp('(..+)(?=.*?(\\1))', 'gm')

const str = `0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp
`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

字符串

相关问题