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'>