如果在函數內部編譯正則表達式,並且該函數被多次調用,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.py中的_compile函數](https://github.com/python/cpython/blob/master/Lib/re.py#L278) – pevik 2016-03-30 08:33:49