4.2 組み込みモジュール re

 

このモジュールはPerlに見られるような正規表現のマッチング操作を提供します。 これは8-bitクリーンです。つまり処理される文字列はヌルバイトと上位ビットがセットされた文字を含むことができます。 正規表現のパターンはヌルバイトは含みませんが、上位ビットがセットされた文字を含むことができます。reは常に利用可能です。

正規表現はバックスラッシュ文字("\")を特別な表現であることを示すためや特殊文字をその特別な意味を呼び出さずに使うために使用します。 これは文字列リテラル内で同じ目的のために使われる同じ文字の使い方とぶつかります。例えば、バックスラッシュにマッチさせるためにパターン文字列として '\\\\'と書く必要があります。なぜなら正規表現は "\\"でなければならず、各バックスラッシュは通常のパイソンの文字列リテラル内では"\\"と表現されなければならないからです。

解決策はパイソンのなまの文字列(raw string)表記を正規表現パターンに対して使用することです。つまり、"r"を前につけた文字列リテラルにおいてはバックスラッシュは特別な扱いを受けることはありません。 従って、r"\n"は"\"と"n"を含む2文字の文字列ですが、"\n"はニューラインを含む1文字の文字列です。 通常パイソンのコードではこのなまの文字列表記を使ってパターンは表現されます。


guido@python.org