如果您在函数内编译正则表达式,并且该函数被多次调用,Python 是否每次都重新编译正则表达式,或者 Python 是否缓存已编译的正则表达式(假设正则表达式没有更改)?
例如:
def contains_text_of_interest(line):
r = re.compile(r"foo\dbar\d")
return r.match(line)
def parse_file(fname):
for line in open(fname):
if contains_text_of_interest(line):
# Do something interesting
实际上,如果你查看 re 模块中的代码,re.compile 函数就像所有其他函数一样使用缓存,因此一遍又一遍地编译相同的正则表达式非常非常便宜(字典查找)。换句话说,将代码编写得最容易理解或最容易维护或最有表现力,并且不用担心编译正则表达式的开销。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)