在Python中查找字符串中所有出现的开始和结束位置

2022-01-24 00:00:00 python string position range window

问题描述

如果你有一个序列:

example='abcdefabcdefabcdefg'

以及您的搜索:

searching_for='abc'

什么函数会给你一个包含所有职位的列表?

what function would give you a list with all the positions?

positions=[(0,2),(6-8),(12-14)]

我创建了一个窗口列表,将 'example' 分割为 3,因此它来自 'abc'、'bcd'、'cde'

i created a window list that splits 'example' by 3 so it goes from 'abc','bcd','cde'

windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']

并使用了for循环

for i in windows:
    if i == 'abc':

这就是我卡住的地方...

thats where i get stuck . . .


解决方案

可以使用正则表达式;匹配对象带有位置信息附加.使用 Python 2 的示例:

You can use regular expressions; the match objects come with position information attached. Example using Python 2:

>>> import re
>>> example = 'abcdefabcdefabcdefg'
>>> for match in re.finditer('abc', example):
        print match.start(), match.end()
0 3
6 9 
12 15

相关文章