5

我有以下代码:

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

4 回答 4

9

用于按您需要的方式repr(pattern)打印。\n

于 2013-06-10T19:22:46.393 回答
3

试试这个:

displayPattern = "something.*\\n"
print "Found ", numMatches, " matches to ", displayPattern, " in file."

您必须为模式的每种情况指定不同的字符串 - 一个用于匹配,一个用于显示。在显示模式中,注意\字符是如何被转义的:\\.

或者,使用内置repr()函数:

displayPattern = repr(pattern)
print "Found ", numMatches, " matches to ", displayPattern, " in file."
于 2013-06-10T19:22:10.373 回答
0
print repr(string)
#or
print string.__repr__()

希望这可以帮助。

于 2013-06-10T19:22:17.503 回答
0

使用 repr 的另一种方法是使用 %r 格式字符串。我通常会把它写成

print "Found %d matches to %r in file." % (numMatches, pattern)
于 2013-06-10T19:42:21.977 回答