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

yizhihongxing

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 函数的使用方法及应用举例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python re.finditer.lastindex函数:返回最后匹配的组的索引 - Python技术站

(0)
上一篇 2023年3月30日
下一篇 2023年3月30日

相关文章

  • 详解Python re.search.lastgroup函数:返回最后匹配的命名组名

    Python re 模块re.search.lastgroup函数的作用与使用方法 re.search.lastgroup函数是Python中re模块中的一个成员方法,用于返回上次匹配的组名。 语法 re.search.lastgroup() 参数说明 该函数无需传入任何参数,直接调用即可。 返回值 返回上次匹配的组名,如果没有则返回None。 使用方法举例…

    re模块 2023年3月31日
    00
  • 详解Python re.search.posix函数:启用 POSIX 正则表达式语法

    Python的 re 模块re.search.posix 函数说明 介绍 re模块是Python标准库中的正则表达式模块,用于对字符串进行匹配、查找和替换等操作。其中,re.search()函数用来查找字符串中的正则表达式模式,并返回第一个匹配的结果。posix参数是其中的一个可选参数,用于开启POSIX扩展语法,以达到更高的表达能力。 使用方法 re.se…

    re模块 2023年3月31日
    00
  • 详解Python re.search.VERBOSE函数:启用详细模式

    Python re模块re.search.VERBOSE函数简介 Python中的re模块是提供正则表达式操作的标准库之一。re.search()函数是其中的一个函数,用于在字符串中查找匹配正则表达式的结果。 re.search.VERBOSE函数是re.search()函数的一个可选参数。本篇攻略将会详细介绍这个函数的作用和使用方法,后面还会提供至少两个实…

    re模块 2023年3月30日
    00
  • 详解Python re.finditer.groups函数:返回所有匹配的子串

    Python re 模块 re.finditer.groups 函数 1. 介绍 re.finditer.groups() 函数用于获取所有匹配到的字符串列表。 该函数会将所有匹配到的字符串以元组形式返回,元组中的每个元素表示一个分组捕获到的字符串。 当正则表达式中含有多个分组时,该函数可以方便地获取所有分组捕获到的字符串。 2. 语法 re.findite…

    re模块 2023年3月30日
    00
  • 详解Python re.fullmatch.end函数:返回匹配的子串结束位置的索引

    Python的re模块re.fullmatch.end函数的作用 re.fullmatch.end函数用于返回完全匹配的匹配对象的索引结尾位置。 re.fullmatch.end函数的使用方法 使用re.fullmatch方法匹配要搜索的字符串,如果找到一个完全匹配,则返回一个匹配对象,使用re.MatchObject.end()方法来查找索引结尾位置。 具…

    re模块 2023年3月30日
    00
  • 详解Python re.fullmatch.DOTALL函数:启用 “.” 匹配任何字符模式

    re.fullmatch() re.fullmatch() 函数用于在一个字符串的开头和结尾匹配整个字符串,如果有匹配返回一个匹配对象,否则返回None。 语法: re.fullmatch(pattern, string, flags=0) 参数解释: pattern: 正则表达式字符串 string: 要匹配的字符串 flags: 正则表达式的修饰符,用来…

    re模块 2023年3月23日
    00
  • 详解Python re.finditer.DOTALL函数:启用 “.” 匹配任何字符模式

    定义与作用 re.finditer()函数使用正则表达式搜索字符串,返回一个匹配的迭代器,每个迭代项都是匹配的对象。该函数与re.findall()功能类似,但返回的是一迭代器,可用于处理较大的文本数据,更加高效。 语法 re.finditer(pattern, string, flags=0) 参数 pattern: 正则表达式 string: 待匹配的字…

    re模块 2023年3月25日
    00
  • 详解Python re.fullmatch.VERBOSE函数:启用详细模式

    re.fullmatch()是Python re库中一种常用的匹配函数,用于在给定字符串(或文本)的整个范围内查找匹配正则表达式的子串,只有整个字符串都与正则表达式匹配时,才算匹配成功。而VERBOSE则是用来忽略正则表达式中的空白以及注释,提高正则表达式可读性的函数。 使用方法 re.fullmatch(pattern, string, flags=0)函…

    re模块 2023年3月23日
    00
合作推广
合作推广
分享本页
返回顶部