为了账号安全,请及时绑定邮箱和手机立即绑定

Python regex找到所有重叠匹配吗?

Python regex找到所有重叠匹配吗?

Python regex找到所有重叠匹配吗?我试图使用Python2.6中的Re找到更大系列中的每10位数字序列。我很容易就能抓住没有重叠的比赛,但我想要每一场比赛的数字系列。例如。在“123456789123456789”中我应该得到以下清单:[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]我已经找到了对“展望”的引用,但是我看到的例子只显示了数字对,而不是更大的分组,而且我无法将它们转换到两位数以上。
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您也可以尝试使用第三方regex模块(不是re),它支持重叠匹配。

>>> import regex as re

>>> s = "123456789123456789"

>>> matches = re.findall(r'\d{10}', s, overlapped=True)

>>> for match in matches: print match

...

1234567891

2345678912

3456789123

4567891234

5678912345

6789123456

7891234567

8912345678

9123456789




查看完整回答
反对 回复 2019-06-12
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我喜欢雷克斯,但这里不需要他们。


简单


s =  "123456789123456789"


n = 10

li = [ s[i:i+n] for i in xrange(len(s)-n+1) ]

print '\n'.join(li)

结果


1234567891

2345678912

3456789123

4567891234

5678912345

6789123456

7891234567

8912345678

9123456789


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 1246 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信