Print文を使用するときにエスケープ文字を表示したいと思います。例えば。
a = "Hello\tWorld\nHello World"
print a
Hello World
Hello World
「Hello\tWorld\nHello\sWorld」と表示させたい
repr を使用します。
a = "Hello\tWorld\nHello World"
print repr(a)
# 'Hello\tWorld\nHello World'
スペースに対して\s
を取得しないことに注意してください。タイプミスだったらいいのに…?
ただし、スペースに\s
が本当に必要な場合は、次のようにすることができます。
print repr(a).replace(' ',r'\s')
単に文字列をそのまま印刷したいのですか、それとも文字列の内部表現にしたいのですか?後者の場合は、r
:r"Hello\tWorld\nHello World"
を前に付けて raw string として作成します。
>>> a = r"Hello\tWorld\nHello World"
>>> a # in the interpreter, this calls repr()
'Hello\\tWorld\\nHello World'
>>> print a
Hello\tWorld\nHello World
また、\s
は、正規表現を除き、エスケープ文字ではありません。そのため、使用目的とはかなり異なる意味を持ちます。