str.find()
返回字符串中匹配项的起始偏移量。
怎样才能得到结束偏移?
我知道一种方法是将其添加到比赛的长度。但有没有办法直接得到它?
e.g。
>>> a = 'Lorem ipsum dolor sit amet'
>>> a.find('ipsum')
6
我想要的是:
>>> a.find('ipsum')+len('ipsum')
11
str.find()
的情况很简单。但是在regex
的情况下变得更加重要,因为事先不知道匹配表达式的长度。
答案 0 :(得分:6)
Python的search
模块中的match
和re
函数返回的对象具有span()
方法,该方法返回匹配的正则表达式的起始位置和结束位置: / p>
>>> import re
>>> a = 'Lorem ipsum dolor sit amet'
>>> re.search('ipsum', a).span()
(6, 11)
>>> re.search('sum.*sit', a).span()
(8, 21)
也可以使用.start()
和.end()
单独返回开始和结束位置。