Python中模式的多次出现

Python中模式的多次出现,python,regex,Python,Regex,我是python新手,我正在尝试构造一个元组列表,其中包含字符串中模式匹配的起始和结束索引 我需要匹配一个模式,该模式从2个连续的0开始,到2个连续的1结束,中间有0和1的组合 比如说, s = '00101010111111100001011' 由于某种类型的操作返回 [(0, 10), (15, 23)] 我可以使用 ind = [(m.start(), m.end()) for m in re.finditer(pattern, s)] 我只是不知道如何编写正则表达式(即模式)来输出

我是python新手,我正在尝试构造一个元组列表,其中包含字符串中模式匹配的起始和结束索引

我需要匹配一个模式,该模式从2个连续的0开始,到2个连续的1结束,中间有0和1的组合

比如说,

s = '00101010111111100001011'
由于某种类型的操作返回

[(0, 10), (15, 23)]
我可以使用

ind = [(m.start(), m.end()) for m in re.finditer(pattern, s)]

我只是不知道如何编写正则表达式(即模式)来输出我想要的内容。

使用以下模式:

00[01]*?11

详细信息

  • 00
    -连续两次
    0
    s
  • [01]*?
    -零个或多个
    0
    1
    字符,尽可能少(因为
    *?
    是惰性量词)
  • 11
    -两个连续的
    1
    字符
:

import re
s = '00101010111111100001011'
rx = r'00[01]*?11'
print([(x.start(),x.end()) for x in re.finditer(rx, s)])
# => [(0, 10), (15, 23)]