我正在创建一个严重依赖于正则表达式的类。
假设我的类看起来像这样:
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+'))
如果我对example
使用repr()
,会得到'Example('\\\\d+')'
,但我想要'Example(r'\\d+')'
,注意在打印时出现了额外的反斜杠,看起来是正确的。我想我可以实现"r'{}'".format(regex.pattern)
来返回正确的结果,但这让我感到不舒服。万一Python软件基金会有一天改变了原始字符串字面量的指定方式,我的代码就不能反映出来了。尽管如此,我的主要关注点是它是否总是有效的。虽然我目前想不到任何特殊情况。有没有更正式的方法来做到这一点?
编辑:在格式规范迷你语言、printf
-样式字符串格式化指南或string
模块中似乎都没有相关内容。
if any(<condition involving c> for c in s)
?),但是还是要点赞。 - user395760'
字符,它将无法工作。 - interjayprint(string_var1)
。 - MarcHstring_var1
和print(string_var1)
。但如果只是简单地计算反斜杠数量,print(string_var1)
就足够了 :-) - MarcH