4.2 re -- 正規表現操作

このモジュールは、Perl で見られるものと同様な正規表現マッチング操作を 提供します。正規表現のパターン文字列にヌルバイトを含むことはできませんが、 \number 記法を使って、ヌルバイトを指定することはできます。 パターンおよび検索される文字列の両方で、 8ビット文字列と同じ様に Unicode 文字列を 使うことができます。 re モジュールはいつでも利用できます。

正規表現では、特殊な形式を表したり、特殊な文字の特別な意味を呼び出さずに その特殊な文字を使うことができるようにするために、バックスラッシュ文字 ("\") を使います。このことは、Python の、文字列リテラルの 同一文字は同一目的で使用するということと矛盾します;例えば、 文字通りのバックスラッシュとマッチするには、パターン文字列として '\\\\' と書かなければなりません、というのは、正規表現は "\\" でなければならず、各バックスラッシュは、正規な Python 文字列リテラル内では "\\" と表現しなければならないからです。

これは、正規表現パターンに Python の raw string 記法を使うことで 解決されます;"r"を前に付けた文字列リテラル内では、 バックスラッシュは、特別な風には全く処理されません。ですから、 r"\n" は "\" と "n"を含む2文字の文字列であり、 一方 "\n" は、改行を含む一文字文字列です。 Python コード中では、パターンは、 ふつう、この raw string 記法を使って表現されます。

参考資料:

Mastering Regular Expressions 詳説 正規表現
Jeffrey Friedl 著、O'Reilly 刊の正規表現に関する本です。 この本の第2版ではPyhonについては触れていませんが、 良い正規表現パターンの書き方を非常に詳細に説明しています。



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。