关键词

详解Python re.finditer.lastindex函数:返回最后匹配的组的索引

Python re模块re.finditer.lastindex 函数

1.作用

Python re模块中的finditer()函数能够检索字符串中与给定模式匹配的所有字符串。函数会返回一个可迭代的迭代器对象,其中每个对象是匹配到的字符串及其索引。re.finditer().lastindex函数用来返回最后一次匹配的子组组号。

2.使用方法

函数语法:

re.finditer().lastindex

具体的使用方法:

import re

#创建匹配对象
matcher = re.finditer(r'(\w+)\s+(\d{4})','Word 2022 Test 2023 abc 2024')
for match in matcher:
    print(match.group(), "子组号为:", match.lastindex) 

运行结果:

Word 2022 子组号为: 1
Test 2023 子组号为: 1
abc 2024 子组号为: 1

其中,代码中使用finditer()函数,按照给定的正则表达式r'(\w+)\s+(\d{4})'来匹配字符串"Word 2022 Test 2023 abc 2024”,然后使用lastindex函数返回最后一次匹配子组的组号。

3.示例

实例一:

#实例一
import re

#创建一个正则表达式模板
pattern = '([A-Z])\w+([0-9])'
matcher= re.finditer(pattern, 'Hello World 2022, Python 2021')

#利用循环取出所有匹配到的对象
for obj in matcher:
    print(obj.group())  #输出匹配到的字符串
    print(obj.lastindex)  #输出最后一次匹配子组的组号,例如第一个匹配的字母H就在模板中的第1个圆括号内,数字2在模板中的第2个圆括号内,则这里的lastindex值为2

运行结果:

Hello World 2
2
Python 1
1

实例二:

#实例二
import re

#创建一个正则表达式模板
pattern = '(\d)(\d)(\d)'
matcher= re.finditer(pattern, '2022 is coming')

#利用循环取出所有匹配到的对象
for obj in matcher:
    print(obj.group())  #输出匹配到的字符串
    print(obj.lastindex)  #输出最后一次匹配子组的组号,例如这里最后一次匹配到第3个小括号中的内容,则这里的lastindex值为3

运行结果:

202
3

以上即为re.finditer.lastindex 函数的使用方法及应用举例。

本文链接:http://task.lmcjl.com/news/15375.html

展开阅读全文