Python re 的 findall 和 finditer 的区别详解
什么是 re
re 是 Python 中的一个库,用于进行正则表达式操作。正则表达式是一种强大的模式匹配语言,可以用来匹配特定格式的字符串。
findall
re.findall()
方法可以用来查找字符串中所有与正则表达式匹配的子串,并将其以列表的形式返回。以下是示例代码:
import re
text = "The quick brown fox jumps over the lazy dog."
matches = re.findall(r"\b\w{3,5}\b", text)
print(matches)
输出结果为:
['quick', 'brown', 'jumps', 'over', 'lazy']
可以看到,该正则表达式匹配了长度为 3 到 5 的单词,返回了所有匹配的结果。
finditer
与 findall()
不同,re.finditer()
返回的是一个迭代器,该迭代器可以用于逐个查找与正则表达式匹配的子串。示例代码如下:
import re
text = "The quick brown fox jumps over the lazy dog."
matches_iter = re.finditer(r"\b\w{3,5}\b", text)
for match in matches_iter:
print(match.group())
输出结果为:
quick
brown
jumps
over
lazy
可以看到,它同样匹配了长度为 3 到 5 的单词,并逐个打印出匹配的结果。
findall 和 finditer 的区别
findall()
返回的是一个列表,包含了所有匹配的子串,而 finditer()
返回的是一个迭代器。当你需要一次性获取所有匹配结果时,可以使用 findall()
;当你需要对每个匹配结果进行操作时,可以使用 finditer()
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python re的findall和finditer的区别详解 - Python技术站