【Python】raw stringsとは

raw stringsとは、r(またはR)が頭に付いた文字列のことです。
raw stringsの中でエスケープシーケンス(バックスラッシュとそれに続く文字)は、通常の文字列(文字列リテラル)として扱われます。

エスケープシーケンスについてはこちらを参照下さい。

【Python】エスケープシーケンスとは
エスケープシーケンスとは、バックスラッシュから始まる文字列のことです。よく使うエスケープシーケンスエスケープシーケンス意味\バックスラッシュ (\)\'一重引用符 (')\"二重引用符 (")\n改行参考:字句解...

raw stringsの例

r"\n"

実験

通常の文字列の場合:

>>> print("aaa\nbbb")
aaa
bbb

raw stringsの場合:

>>> print(r"aaa\nbbb")
aaa\nbbb

このようにraw stringsでは\nは改行ではなく、\nが並んだ通常の文字列として扱われます。

注意点

raw stringsの中ではバックスラッシュが通常の文字として扱われる」と考えるのは間違いです。

その証拠にr"\"はエラーになります。

>>> r"\"
  File "", line 1
    r"\"
       ^
SyntaxError: EOL while scanning string literal

この説明は以下ウェブページになされています。
英語ですが丁寧に説明されているので、ぜひご覧下さいませ。
Why can’t Python’s raw string literals end with a single backslash? – Stack Overflow

おわりに

今回はraw stringsについて説明しました。
では。

参考:
字句解析 – Python 3.8.0 ドキュメント


YouTube: ミサキさん

問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)

コメント

  1. […] raw strings(こちらを参照)を使うと、2つのバックスラッシュは、r”\”と表記できます。そのため、上記はこのようにも表現できます。 […]

  2. […] Pythonのraw strings(こちらを参照)を使うと、2つのバックスラッシュはr”\”と表記できます。実は、正規表現リテラルでも2つのバックスラッシュは/\/と短く表記できます。ただし、Pythonに正規表現リテラルはないようです。 […]

タイトルとURLをコピーしました