Python中模式的多次出现

2024-04-19 15:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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)]

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


Tags: 字符串inre类型列表for模式start
1条回答
网友
1楼 · 发布于 2024-04-19 15:58:37

使用以下模式:

00[01]*?11

参见regex demo

详细信息:

  • 00-两个连续的0
  • [01]*?-零个或多个01字符,尽可能少(因为*?是一个惰性量词)
  • 11-两个连续的1字符。你知道吗

Python demo

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)]

相关问题 更多 >