我正在制作一个严重依赖正则表达式的类。
假设我的班级看起来像这样:
class Example:
def __init__(self, regex):
self.regex = regex
def __repr__(self):
return 'Example({})'.format(repr(self.regex.pattern))
假设我这样使用它:
import re
example = Example(re.compile(r'\d+'))
如果我这样做repr(example)
,我得到'Example('\\\\d+')'
,但我想要'Example(r'\\d+')'
。考虑到打印时正确显示的额外反斜杠。我想我可以实现它来 return "r'{}'".format(regex.pattern)
,但这对我来说并不合适。万一 Python 软件基金会有一天会改变指定原始字符串文字的方式,我的代码不会反映这一点。不过,这是假设的。我主要关心的是这是否总是有效。不过,我想不出一个边缘案例。有没有更正式的方式来做到这一点?
编辑: Format Specification Mini-Language、printf
-style String Formatting guide或string
module中似乎没有出现任何内容。