Contohnya rentetan 1212121212121212121212
Anda perlu memadankan 5 12s berturut-turut atau 5 21s berturut-turut untuk dianggap layak
Bilangan padanan hendaklah 13, seperti yang ditunjukkan dalam gambar di bawah, garisan merah mewakili padanan.
Pertimbangkan pengekstrakan tanpa penghunian dan gunakan lihat sekeliling untuk mengekstrak subkumpulan: (?=.*?((12|21)2{4}))
Pautan demo: http://regex.zjmainstay.cn/r/...
>>> import re >>> ss='1212121212121212121212' >>> re.findall(r'(?=((12|21){4}))',ss) [('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12'), ('2121212121', '21'), ('1212121212', '12')]
js agak kasar dan perlu berputar kembali ke subpadanan.
var str="1212121212121212121212"; var pattern=/(?=((12|21){4}))/g; while(m = pattern.exec(str)){ console.log(m[1]) pattern.lastIndex++ //由于没有消耗字符,js的Re引擎不会递增索引。 }
Soalannya tidak jelas, saya hanya boleh meneka. .
(([0-9]){2})+
/((12){5})|((21){5})/.test(str)
var pattern=/(?:(1)(?=(?:21){4}2))|(?:(2)(?=(?:12){4}1))/g; var str="1212121212121212121212"; console.log(str.match(pattern));
/(w+)1{4}/
Pertimbangkan pengekstrakan tanpa penghunian dan gunakan lihat sekeliling untuk mengekstrak subkumpulan: (?=.*?((12|21)2{4}))
Pautan demo: http://regex.zjmainstay.cn/r/...
Enjin Re
js agak kasar dan perlu berputar kembali ke subpadanan.
Soalannya tidak jelas, saya hanya boleh meneka. .
/((12){5})|((21){5})/.test(str)
/(w+)1{4}/