如何复制已编译的正则表达式?

问题描述 投票:0回答:1

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)

但是我想知道这对于所有可能的正则表达式是否正确;如果就这么简单,那么为什么引用库不实现这种复制呢?

python regex python-3.x copy
1个回答
1
投票

由于编译的正则表达式是不可变的,所以新引用实际上与副本相同。

p = re.compile( r'foo' )
p_copy = p

(如果编写了上述内容后p_copy的内容不适合您的目的,请在您的问题中提供更多上下文!)

© www.soinside.com 2019 - 2024. All rights reserved.