Python re模块中的finditer()函数能够检索字符串中与给定模式匹配的所有字符串。函数会返回一个可迭代的迭代器对象,其中每个对象是匹配到的字符串及其索引。re.finditer().lastindex函数用来返回最后一次匹配的子组组号。
函数语法:
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函数返回最后一次匹配子组的组号。
实例一:
#实例一
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