Python - 将字符串打印到屏幕,在输出中包含\ n

时间:2013-06-10 19:19:43

标签: python printing

我有以下代码:

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等等。感谢任何帮助。

4 个答案:

答案 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)