在Python中查找字符串中所有出现的开始和结束位置
问题描述
如果你有一个序列:
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
相关文章