Python中re.finditer函数的使用

re 模块简介

re 模块是 Python 标准库中的正则表达式模块。正则表达式是一种特殊的字符串处理方式,常用于匹配文本中的特定模式。re 模块可以提供针对正则表达式的支持。

re.finditer() 函数

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

函数功能:
扫描整个字符串,并返回对每个匹配项的迭代器。每个匹配项都由一个 MatchObject 实例表示。

参数:

  • pattern: 一个正则表达式
  • string: 要进行匹配的字符串。
  • flags:可选参数, 通过它可以修改正则表达式的匹配方式, 这是一个 int 类型的变量, 取以下值中的单个或者多个:

    • re.I(忽略大小写)
    • re.M(多行模式)
    • re.S(点任意匹配模式,改变.的行为)

返回值:
返回一个迭代器,迭代器中的每个元素都是匹配的 MatchObject 实例。

使用方法

在使用 re.finditer() 函数时,需要先通过 re.compile() 函数创建一个模式对象,再使用模式对象调用 finditer() 方法。

匹配一个字符串中的所有整数,并输出它们所在的位置

import re
pattern = re.compile(r'\d+')
string = 'Hello 123 Python 456'
for match in re.finditer(pattern,string):
      print(match.group()+str(match.span()))

>>
123(6, 9)
456(17, 20

 

在此例中,首先利用 re.compile() 函数创建了一个正则表达式对象 pattern,该表达式用来匹配数字。
然后调用 finditer() 函数对字符串进行查找匹配,循环遍历迭代器并输出其匹配结果。

总结

re.finditer() 函数可以快速匹配字符串中的所有符合要求的子串,并返回它们在原字符串中的位置。学会了该函数的使用方法对于进行复杂的文本处理任务至关重要。

posted @ 2023-04-14 10:25  北京流浪儿  阅读(391)  评论(0编辑  收藏  举报