Python 文字列の領域では、目的と文字列プレフィックス「u」、「r」、および「ur」の機能。この記事は、生の文字列リテラルの独特の役割と複雑さに光を当てることを目的としています。
一般的な誤解とは異なり、明確な「生の文字列」型は存在しません。代わりに、「生の文字列リテラル」とは、r'...' や r""...""" など、文字 "r" が接頭辞として付いた文字列を指します。これらのリテラルは、バックスラッシュ () の処理のみが異なります。
通常の文字列リテラルでは、通常、バックスラッシュの後に別の文字が続くと、エスケープ シーケンスがトリガーされ、改行やタブなどの特殊文字を表します。ただし、生の文字列リテラルは、バックスラッシュが文字列を終了する単一引用符または二重引用符の前にある場合を除き、バックスラッシュ自体を解釈します。
接頭辞「u」は、unicode 型の Unicode オブジェクトである Unicode 文字列を示します。 Python 2.* では、u'...' は Unicode 文字列を表し、'...' はバイト文字列です。
前述したように、接頭辞「r」は生の文字列リテラルを示します。バックスラッシュを文字通りに保持するため、正規表現やネイティブ Windows ファイル パスを扱うときに便利です。 Python 2.* では、r'...' と r'''...''' の両方がバイト文字列を生成します。
「ur」プレフィックスは、「u」と「r」の機能を組み合わせたものです。 、生の Unicode 文字列リテラルになります。生の Unicode 文字列は、Unicode 文字を含むファイル パスを操作する場合に特に便利です。
Python 2.* では、バイト文字列と Unicode 文字列は区別されます。 Unicode 文字列からバイト文字列に変換するには、.encode() メソッドを使用できます。バイト文字列から Unicode 文字列に変換するには、.decode() メソッドを使用できます。
Python 2.* では、文字列のエンコーディングが決定されます。生のバイト データのデコード (文字列の作成時) または Unicode データのエンコード (文字列の作成時) に使用されるコーデックによって異なります。 「u」接頭辞は、結果の Unicode 文字列のエンコーディングには影響しません。
Python 3.* では、文字列はデフォルトで Unicode であるため、「u」接頭辞は必要なくなりました。さらに、生の文字列ではバックスラッシュがエスケープ シーケンスとして扱われないため、生の文字列リテラルは正規表現には必要ありません。
以上がPython の文字列プレフィックス「u」、「r」、「ur」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。