4.2.2 マッチング vs 検索

Python は、正規表現に基づく、2つの異なるプリミティブな操作を 提供しています:マッチと検索です。もしあなたが Perl の記号に慣れているのであれば、 検索操作があなたの求めるものです。 search() 関数と、 コンパイルされた正規表現オブジェクトでの 対応するメソッドを見て下さい。

マッチは、"^"で始まる正規表現を使うと、検索とは 異なるかもしれないことに注意して下さい: "^" は文字列の先頭でのみ、あるいは MULTILINE モードでは改行の直後ともマッチします。 ``マッチ'' 操作は 、もしそのパターンが、モードに拘らず文字列の先頭とマッチ するか、あるいは改行がその前にあるかどうかに拘らず、省略可能な pos 引数によって 与えられる先頭位置でマッチする場合のみ成功します。

re.compile("a").match("ba", 1)           # 成功
re.compile("^a").search("ba", 1)         # 失敗; 'a' は先頭にない
re.compile("^a").search("\na", 1)        # 失敗; 'a' は先頭にない
re.compile("^a", re.M).search("\na", 1)  # 成功
re.compile("^a", re.M).search("ba", 1)   # 失敗; \n が前にない

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