Regulärer Mustervergleichsausdruck für nicht aufeinanderfolgende, sich wiederholende Sequenzen
P粉563831052
P粉563831052 2023-09-16 20:48:28
0
1
485

Ich habe eine lange, bedeutungslose Zeichenfolge, in der jedes Zeichen entweder eine Zahl [0-9] oder ein Kleinbuchstabe [a-z] ist, wie unten gezeigt

"0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp"

Ich möchte einen regulären Ausdruck, der nicht aufeinanderfolgende Muster abgleichen kann, die mehr als einmal in einer Zeichenfolge vorkommen Ich möchte, dass die Ausgabe so aussieht

Der fett gedruckte Teil ist der passende Teil

"0z8b816ne139z1b948bjk50f9498t139gjj90t7tb3509w6h0r7tbp"

P粉563831052
P粉563831052

Antworte allen(1)
P粉754477325

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

参考链接

const regex = /(..+)(?=.*?(\1))/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}`);
    });
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage