Python 3中是否有一种指定的方式来复制已编译的正则表达式?以下代码抛出TypeError
(与deepcopy
相同),但我不确定从那里去哪里。
import re
import copy
p = re.compile( r'foo' )
copy.copy(p) # TypeError: cannot copy this pattern object
我已经考虑过通过以下方式手动创建副本:
p_copy = re.compile(p.pattern, p.flags)
但是我想知道这对于所有可能的正则表达式是否正确;如果就这么简单,那么为什么引用库不实现这种复制呢?
由于编译的正则表达式是不可变的,所以新引用实际上与副本相同。
p = re.compile( r'foo' )
p_copy = p
(如果编写了上述内容后p_copy
的内容不适合您的目的,请在您的问题中提供更多上下文!)