学科分类
目录

finditer()函数

finditer()函数同样可以获取目标文本中所有与正则表达式匹配的内容,但该函数会将匹配到的子串以迭代器的形式返回。finditer()函数格式如下:

finditer(pattern, string, flags=0)

以字符串“狗的英文:Dog,猫的英文:Cat。”为例,使用finditer()函数匹配该字符串中所有的英文,示例代码如下:

import re
string = "狗的英文:Dog,猫的英文:Cat。"
reg_zhn = re.compile(r"[a-zA-Z]+") # 匹配所有英文
result_info = re.finditer(reg_zhn, string)
print(result_info)
print(type(result_info))

上述代码用于匹配字符串string中所有的,此代码首先使用compile()函数进行预编译以创建Match对象reg_zhn,然后通过finditer()函数查找所有符合匹配规则的内容,赋值给变量result_info,最后使用print()函数分别输出变量result的值、变量result_infode 的类型。

运行代码,结果如下所示:

<callable_iterator object at 0x0000000002136278>
<class 'callable_iterator'>

通过输出结果可以看出,变量result_info为一个迭代对象,因此可以使用next()方法获取其中元素,示例代码如下:

print(result_info.__next__())

以上代码的输出结果如下所示:

<re.Match object; span=(5, 8), match='Dog'>
点击此处
隐藏目录