搜尋

首頁  >  問答  >  主體

php - 正規匹配連續5個1212121212或2121212121,可以重複利用數字

例如字串 1212121212121212121212

需要配對連續出現5個12或連續出現5個21都算符合條件

匹配個數應該是13個,如下圖,紅色線的代表符合的。

#
漂亮男人漂亮男人2688 天前1095

全部回覆(6)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:00:15

    考慮不佔位提取,使用環視提取子分組:(?=.*?((12|21)2{4}))

    demo連結:http://regex.zjmainstay.cn/r/...

    回覆
    0
  • 大家讲道理

    大家讲道理2017-07-05 10:00:15

    >>> 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的Re引擎有點粗糙,需要循環回傳子匹配。

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

    回覆
    0
  • typecho

    typecho2017-07-05 10:00:15

    問題不清,只能猜了。 。

    (([0-9]){2})+

    回覆
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:00:15

    /((12){5})|((21){5})/.test(str)

    回覆
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:00:15

    雷雷

    回覆
    0
  • 高洛峰

    高洛峰2017-07-05 10:00:15

    /(w+)1{4}/

    回覆
    0
  • 取消回覆