注册

详解Python re.finditer.span函数:返回匹配的子串开始和结束位置的索引的元组

Python的re模块是一个用于正则表达式操作的库。re.finditer.span()函数是re模块中的函数,作用是用于查找字符串中符合正则表达式规则的子串(或多个子串),并返回它们在字符串中的位置信息(即起始位置和终止位置)。该函数的具体使用方法如下:

函数语法

re.finditer(pattern, string, flags=0)

参数说明:

  • pattern: 要匹配的正则表达式规则
  • string: 要搜索的字符串
  • flags(可选参数): 用于控制正则表达式的匹配方式,如是否区分大小写、是否要多行匹配等等。具体内容可参考re.match()函数。

返回值:返回一个迭代器,其中每个元素对应一个匹配到的子串的位置信息的元组(起始位置和终止位置)。

使用示例:

import re

str1 = 'abcd1234efg5678'
result1 = re.finditer('\d', str1)
for item in result1:
    print(item, item.span())

str2 = '135246'
result2 = re.finditer('(\d{3})(\d{3})', str2)
for item in result2:
    print(item.group(), item.span(1), item.span(2))

以上代码的执行结果如下:

 (4, 5)
 (5, 6)
 (6, 7)
 (7, 8)
 (12, 13)
 (13, 14)
135 (0, 3) (3, 6)
246 (0, 3) (3, 6)

以上代码中,第一个示例在字符串 str1 中匹配所有数字字符,并输出它们在字符串中的位置信息(起始位置和终止位置)。第二个示例在字符串 str2 中匹配所有“连续的三个数字”字符组成的子串,同时输出这些子串及它们中每个“三个数字”组的位置信息(起始位置和终止位置)。