Rumah > Soal Jawab > teks badan
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粉7544773252023-09-17 09:59:12
Ekspresi biasa: (..+)(?=.*?(1))
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}`); }); }