php - 正規匹配連續5個1212121212或2121212121,可以重複利用數字
漂亮男人
漂亮男人 2017-07-05 09:58:15
0
6
1098

例如字串 1212121212121212121212

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

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

#
漂亮男人
漂亮男人

全部回覆(6)
曾经蜡笔没有小新

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

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

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

問題不清,只能猜了。 。

(([0-9]){2})+
滿天的星座

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

小葫芦

/(w+)1{4}/

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板