O.r*_*rka 4 python regex sequence findall
我正在尝试使用re.findall按顺序获取查询的开始和结束位置
import re
sequence = 'aaabbbaaacccdddeeefff'
query = 'aaa'
findall = re.findall(query,sequence)
>>> ['aaa','aaa']
Run Code Online (Sandbox Code Playgroud)
我如何得到像findall.start()或findall.end()的东西?
我想得到
start = [0,6]
end = [2,8]
Run Code Online (Sandbox Code Playgroud)
我知道
search = re.search(query,sequence)
print search.start(),search.end()
>>> 0,2
Run Code Online (Sandbox Code Playgroud)
只会给我第一个例子
Ash*_*ary 14
用途re.finditer:
>>> import re
>>> sequence = 'aaabbbaaacccdddeeefff'
>>> query = 'aaa'
>>> r = re.compile(query)
>>> [[m.start(),m.end()] for m in r.finditer(sequence)]
[[0, 3], [6, 9]]
Run Code Online (Sandbox Code Playgroud)
来自文档:
在字符串中的RE模式的所有非重叠匹配上返回一个
iterator让步MatchObject实例.从左到右扫描字符串,并按找到的顺序返回匹配项.