Planet Python 日本語
フォロー
Hugo van Kemenade: re.match() のソフト非推奨化
re.match() は、文字列のまさに先頭でパターンを照合しようとします。パターンが先頭で見つかった場合はマッチオブジェクトを返し、それ以外の場合は None を返します。re.match("pi", "pi") と re.match("pi", "pie") は、どちらも "pi" がこれらの文字列の先頭にあるため、マッチを返します。しかし、re.match("pi", "api") と re.match("pi", "magpie") は、"pi" が文字列の先頭に現れないため、マッチしません。対照的に、re.search() は文字列全体をスキャンし、パターンの位置に関係なく、最初に見つかった場所を返します。re.fullmatch() は、文字列全体が最初から最後までパターンと正確に一致することを要求します。Python 3.15 は、より明確なセマンティクスを目指して、re.match() のエイリアスとして re.prefixmatch() を導入しました。re.match() は Python 3.15 でソフト非推奨となり、新しいコードでの使用は推奨されませんが、既存のコードでは引き続き安全に使用できます。先頭でのみ照合する意図がある場合は、新しいコードでは re.prefixmatch() を優先すべきです。