Python - AI 助手

Python re.finditer() 方法



Python 的 re.finditer() 方法返回一个迭代器,该迭代器生成字符串中所有不重叠匹配模式的匹配对象。

方法 re.findall() 返回匹配字符串的列表,而方法 re.finditer() 提供有关每个匹配项的更详细的信息,例如字符串中的起始和结束位置。每个匹配对象可用于提取匹配的子字符串及其位置。

当我们需要详细处理或分析每个匹配项时,此方法特别有用。

语法

以下是 Python re.finditer() 方法的语法和参数:

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

参数

以下是 python re.finditer() 方法的参数:

  • pattern: 要搜索的正则表达式模式。
  • string: 要搜索的字符串。
  • maxsplit(可选): 最大分割次数。默认值为 0,表示“无限制”。
  • flags(可选): 用于修改匹配行为的标志(例如,re.IGNORECASE)

返回值

此方法返回一个匹配对象的迭代器

示例 1

以下是 re.finditer() 方法的基本示例。此示例查找字符串中的所有数字序列并打印每个匹配项:

import re

matches = re.finditer(r'\d+', 'There are 123 apples and 456 oranges.')
for match in matches:
    print(match.group())  

输出

123
456

示例 2

此示例查找字符串中的所有单词,并使用 re.finditer() 方法打印每个单词:

import re

matches = re.finditer(r'\b\w+\b', 'Hello, world! Welcome to Python.')
for match in matches:
    print(match.group())  

输出

Hello
world
Welcome
to
Python

示例 3

在此示例中,我们使用 re.IGNORECASE 标志执行不区分大小写的搜索,并打印每个匹配项:

import re

matches = re.finditer(r'hello', 'Hello HELLO hello', re.IGNORECASE)
for match in matches:
    print(match.group())    

输出

Hello
HELLO
hello

示例 4

在此示例中,我们检索字符串中每个匹配项的起始和结束位置:

import re

matches = re.finditer(r'\d+', 'There are 123 apples and 456 oranges.')
for match in matches:
    print(match.group(), match.start(), match.end())  

输出

123 10 13
456 25 28
python_modules.htm
广告