首页 >社区问答列表 >php - 正则匹配连续5个1212121212或者2121212121,可以重复利用数字

php - 正则匹配连续5个1212121212或者2121212121,可以重复利用数字

例如字符串 1212121212121212121212

需要匹配连续出现5个12或者连续出现5个21都算符合条件

匹配个数应该是13个,如下图,红色线的代表符合的。

  • 大家讲道理
  • 大家讲道理    2017-07-05 10:00:155楼

    >>> import re
    >>> ss='1212121212121212121212'
    >>> re.findall(r'(?=((12|21)\2{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的Re引擎有点粗糙,需要循环返回子匹配。

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

    +0添加回复

  • 回复