re模块是Python中处理正则表达式的标准库。其中re.finditer.span函数是用来找到字符串中所有与正则表达式匹配的子串,并返回每个子串的起始位置和结束位置的函数。
以下是re.finditer.span函数的使用方法:
import re
# 定义正则表达式
pattern = r'Hello (\w+)'
# 待匹配的字符串
text = 'Hello John, Hello Jane'
# 使用re.finditer.span函数,返回每个匹配的子串的起始位置和结束位置
for match in re.finditer(pattern, text):
print(match.span())
上述代码中,定义了一个正则表达式pattern
,该正则表达式匹配所有以”Hello “开头并且后面跟一个或多个字母的字符串。
然后定义了一个待匹配的字符串text
,该字符串包含两个符合上述正则表达式的子串。
接着使用re.finditer.span()
函数,遍历匹配到的所有子串,返回每个子串的起始位置和结束位置。
运行以上代码,输出的结果为:
(0, 10)
(12, 22)
可以看到,字符串中包含两个符合正则表达式的子串,分别起始于位置0和位置12,并且长度分别为10和10。
下面再提供一个实际应用的例子。假设需要在一个文件夹下查找所有的.py文件,并输出每个文件名和文件大小。
import os
import re
# 文件路径
path = '/path/to/dir'
# 匹配所有的.py文件
pattern = r'.*\.py$'
# 遍历文件夹,找到所有符合条件的文件
for root, dirs, files in os.walk(path):
for file in files:
if re.match(pattern, file):
# 如果是.py文件,则输出文件名和文件大小
size = os.path.getsize(os.path.join(root, file))
print(f'{file}: {size} bytes')
上述代码中,首先定义了一个文件路径path
,然后定义了一个正则表达式pattern
,该正则表达式匹配以.py结尾的文件。
接着使用os.walk()
函数遍历指定文件夹下的所有文件和子文件夹,对于符合正则表达式的文件,使用os.path.getsize()
函数获取其文件大小,并输出文件名和文件大小。
通过以上实例的说明,可以看出re.finditer.span()
函数的作用与使用方法,它能够方便地找到字符串中所有与正则表达式匹配的子串,并返回每个子串的起始位置和结束位置。