详解Python re.finditer.re函数:返回匹配的正则表达式对象

  • Post category:Python

re模块是Python中处理正则表达式的标准库之一,它提供了一系列的函数来处理字符串中的正则表达式匹配。其中re.finditer函数可以用于从字符串中查找所有匹配指定正则表达式的项,其使用方法及作用如下:

re.finditer函数的使用方法

import re
# 定义待匹配字符串
string = "Hello, World! 123"
# 定义正则表达式
pattern = r'\w+'

# 执行re.finditer函数
iter = re.finditer(pattern, string)

# 遍历匹配结果并输出
for match in iter:
    print(match.group())

函数的作用

re.finditer函数的作用是查找所有正则表达式在字符串中的相应匹配,并返回每个匹配的迭代器。返回结果包含了每个匹配的位置信息和匹配到的字符串内容。这个函数可以用于在字符串中查找所有与正则表达式相匹配的符合条件的内容,例如在网页中查找所有的链接或邮箱信息。

实例一:匹配出字符串中的所有数字

import re
# 定义待匹配字符串
string = "Hello, World! 123"
# 定义正则表达式
pattern = r'\d+'

# 执行re.finditer函数
iter = re.finditer(pattern, string)

# 遍历匹配结果并输出
for match in iter:
    print(match.group())

输出结果为:

123

实例二:匹配出网页中的所有超链接

import urllib.request
import re

# 定义待匹配字符串
url = "https://www.python.org/"
# 获取HTML内容
response = urllib.request.urlopen(url)
html_content = response.read().decode("utf-8")

# 定义正则表达式
pattern = r'<a\s[^>]*href="(.*?)"[^>]*>(.*?)</a>'

# 执行re.finditer函数
iter = re.finditer(pattern, html_content)

# 遍历匹配结果并输出
for match in iter:
    print(match.group(1))

输出结果为:

#
/psf-landing/
https://docs.python.org
/download/
https://docs.python.org/3/license.html
about/
blogs/
#sidebar
/downloads/windows/
https://devguide.python.org/
/jobs/
/community-awards
#
https://discuss.python.org/tags/c/users/texnofobixf/
#python-network

...

以上是re.finditer函数的使用方法及作用与两个实例的详细说明。要注意的是,使用过程中需要注意正则表达式的写法和匹配规则,否则可能出现无法匹配或匹配出错误结果的情况。