php - Regular match 5 consecutive 1212121212 or 2121212121, numbers can be reused
漂亮男人
漂亮男人 2017-07-05 09:58:15
0
6
1048

For example string 1212121212121212121212

It needs to match 5 consecutive 12s or 5 consecutive 21s to be considered qualified

The number of matches should be 13, as shown in the figure below, the red lines represent matches.

漂亮男人
漂亮男人

reply all(6)
曾经蜡笔没有小新

Consider extraction without occupancy and use look-around to extract subgroups: (?=.*?((12|21)2{4}))

Demo link: 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's Re engine is a bit rough and needs to loop back to submatches.

var str="1212121212121212121212";
var pattern=/(?=((12|21){4}))/g;
while(m = pattern.exec(str)){
    console.log(m[1])
    pattern.lastIndex++ //由于没有消耗字符,js的Re引擎不会递增索引。
}
typecho

The question is unclear, I can only guess. .

(([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}/

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!