【发布时间】:2012-11-26 13:05:20
【问题描述】:
我正在创建一个严重依赖正则表达式的类。
假设我的班级是这样的:
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+')'。考虑到打印时正确显示的额外反斜杠。我想我可以实现它以返回"r'{}'".format(regex.pattern),但这并不适合我。万一 Python 软件基金会有一天会改变指定原始字符串文字的方式,我的代码不会反映这一点。不过,这是假设的。我主要关心的是这是否总是有效。不过,我想不出一个边缘案例。有更正式的方式吗?
编辑:Format Specification Mini-Language、printf-style String Formatting guide 或 string module 中似乎没有出现任何内容。
【问题讨论】:
标签: python python-3.x rawstring