当想要查找并处理字符串中所有出现的正则表达式时,re.findall
之间的定性区别是什么,并且迭代它返回的列表而不是直接用{{1}迭代}}?
在代码中,re.search
版本之间的质量差异是什么:
findall
迭代sbls = "some big ... long string"
for i in some_regex.findall( sbls )
process_item( i )
版本:
search
在非常大字符串和选择不当/低基数的正则表达式中,sbls = "some big ... long string"
m = some_regex.search( sbls )
while m:
process_item( m.group() )
m = some_regex.search(sbls, m.end())
版本会消耗更多内存(可能通过列表)吗?相反,findall
版本会花费更多时间吗?
由于我可以访问的硬件的限制,我无法辨别出一个不可忽视的差异,所以非常感谢其他人'的见解。
答案 0 :(得分:0)
就像@Jan所说,发现一切都稍微快一些,但是后者可以让你更好地控制每场比赛怎么做,例如,或许你可以提前找到你想要的东西,你可以打破并节省找到剩余比赛的努力。