找到匹配字符串或正则表达式的结束偏移量

时间:2015-03-12 21:06:09

标签: python regex string

str.find()返回字符串中匹配项的起始偏移量。 怎样才能得到结束偏移?

我知道一种方法是将其添加到比赛的长度。但有没有办法直接得到它?

e.g。

>>> a = 'Lorem ipsum dolor sit amet'
>>> a.find('ipsum')
6

我想要的是:

>>> a.find('ipsum')+len('ipsum')
11

str.find()的情况很简单。但是在regex的情况下变得更加重要,因为事先不知道匹配表达式的长度。

1 个答案:

答案 0 :(得分:6)

Python的search模块中的matchre函数返回的对象具有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()单独返回开始和结束位置。