unique_name 2018-10-19 08:55 采纳率: 0%
浏览 5063
已采纳

python 正则如何多次匹配?

例如abc1abc2abc3abc
re.findall('abc\w*?abc','abc1abc2abc3abc',re.I)

            结果为['abc1abc', 'abc3abc']
            怎么把abc2abc也提取出来?
  • 写回答

5条回答 默认 最新

  • threenewbee 2018-10-19 09:28
    关注

    我google了下

    stackoverflow上有人问过这个问题

    https://stackoverflow.com/questions/5616822/python-regex-find-all-overlapping-matches
    https://stackoverflow.com/questions/41045008/return-all-overlapping-patterns-using-re-findall-in-python

    网站可能需要科学下才能上,我复制了关键的一段

     import re 
    s = "123456789123456789"
    matches = re.finditer(r'(?=(\d{10}))',s)
    results = [int(match.group(1)) for match in matches]
    # results: 
    # [1234567891,
    #  2345678912,
    #  3456789123,
    #  4567891234,
    #  5678912345,
    #  6789123456,
    #  7891234567,
    #  8912345678,
    #  9123456789]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题