我有以下代码:
pattern = "something.*\n" #intended to be a regular expression
fileString = some/path/to/file
numMatches = len( re.findall(pattern, fileString, 0) )
print "Found ", numMatches, " matches to ", pattern, " in file."
我希望用户能够看到模式中包含的'\ n'。此时,模式中的'\ n'会在屏幕上写入换行符。所以输出就像:
Found 10 matches to something.*
in file.
我希望它是:
Found 10 matches to something.*\n in file.
是的,pattern.replace(“\ n”,“\ n”)确实有效。但我希望它能打印所有形式的转义字符,包括\ t \,\ e等等。感谢任何帮助。
答案 0 :(得分:6)
使用repr(pattern)
以您需要的方式打印\n
。
答案 1 :(得分:3)
试试这个:
displayPattern = "something.*\\n"
print "Found ", numMatches, " matches to ", displayPattern, " in file."
您必须为模式的每种情况指定不同的字符串 - 一个用于匹配,一个用于显示。在显示模式中,请注意\
字符的转义方式:\\
。
或者,使用内置的repr()
函数:
displayPattern = repr(pattern)
print "Found ", numMatches, " matches to ", displayPattern, " in file."
答案 2 :(得分:0)
print repr(string)
#or
print string.__repr__()
希望这有帮助。
答案 3 :(得分:0)
另一种使用repr的方法是使用%r格式字符串。我通常把它写成
print "Found %d matches to %r in file." % (numMatches, pattern)