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."

パターンのケースごとに異なる文字列を指定する必要があります。1 つは照合用、もう 1 つは表示用です。表示パターンで、\文字がどのようにエスケープされているかに注意してください: \\.

または、組み込み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 に答える