加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式findall start()和end()?Python

发布时间:2020-12-14 06:06:09 所属栏目:百科 来源:网络整理
导读:我正在尝试使用re.findall按顺序获取查询的开始和结束位置 import resequence = 'aaabbbaaacccdddeeefff'query = 'aaa'findall = re.findall(query,sequence) ['aaa','aaa'] 我如何得到像findall.start()或findall.end()的东西? 我想得到 start = [0,6]end
我正在尝试使用re.findall按顺序获取查询的开始和结束位置

import re

sequence = 'aaabbbaaacccdddeeefff'

query = 'aaa'

findall = re.findall(query,sequence)

>>> ['aaa','aaa']

我如何得到像findall.start()或findall.end()的东西?

我想得到

start = [0,6]
end = [2,8]

我知道

search = re.search(query,sequence)

print search.start(),search.end()

>>> 0,2

只会给我第一个例子

解决方法

使用 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]]

来自文档:

Return an iterator yielding MatchObject instances over all non-overlapping matches for the RE pattern in string. The string is scanned left-to-right,and matches are returned in the order found.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读