我正在创建一个严重依赖正则表达式的类.
让我们说我的课看起来像这样:
class Example:
def __init__(self, regex):
self.regex = regex
def __repr__(self):
return 'Example({})'.format(repr(self.regex.pattern))
Run Code Online (Sandbox Code Playgroud)
让我们说我像这样使用它:
import re
example = Example(re.compile(r'\d+'))
Run Code Online (Sandbox Code Playgroud)
如果我这样做repr(example),我会'Example('\\\\d+')',但我想要'Example(r'\\d+')'.考虑到打印时的额外反斜杠,它显示正确.我想我可以实现它返回"r'{}'".format(regex.pattern),但这并不适合我.万一Python软件基金会有一天会改变指定原始字符串文字的方式,我的代码就不会反映出来.不过,这是假设的.我主要担心的是这是否一直有效.不过,我无法想到一个优势的边缘情况.有更正式的方法吗?
编辑:格式规范迷你语言,printf样式字符串格式指南或string模块似乎没有出现任何内容.
当我尝试打印"\ 20%"时,我是python的新手
>>>"\20%"
Run Code Online (Sandbox Code Playgroud)
为什么外壳打印'\ x10%'即显示
'\x10%'
Run Code Online (Sandbox Code Playgroud)
当这样做时,加入也会发生同样的情况
>>>l = ['test','case']
>>>"\20%".join(l)
Run Code Online (Sandbox Code Playgroud)
表明
'test\x10%case'
Run Code Online (Sandbox Code Playgroud)
我使用的是python 2.7.3