Ungkapan biasa padanan corak untuk urutan berulang bukan berturut-turut
P粉563831052
P粉563831052 2023-09-16 20:48:28
0
1
493

Saya mempunyai rentetan panjang yang tidak bermakna di mana setiap aksara adalah sama ada nombor [0-9] atau huruf kecil [a-z] seperti yang ditunjukkan di bawah

"0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp"

Saya mahukan ungkapan biasa yang boleh memadankan corak bukan berturut-turut yang muncul lebih daripada sekali dalam rentetan Saya mahu output kelihatan seperti ini

Bahagian yang tebal adalah bahagian yang sepadan

"0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r

P粉563831052
P粉563831052

membalas semua(1)
P粉754477325

Ekspresi biasa: (..+)(?=.*?(1))

Pautan rujukan

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

// 使用RegExp构造函数的替代语法
// const regex = new RegExp('(..+)(?=.*?(\1))', 'gm')

const str = `0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp
`;
let m;

while ((m = regex.exec(str)) !== null) {
    // 避免零宽匹配导致无限循环
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // 可以通过`m`变量访问结果
    m.forEach((match, groupIndex) => {
        console.log(`找到匹配,第${groupIndex}组:${match}`);
    });
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan