re.match と re.match の主な違いを理解する
Python の re モジュールの match() 関数と search() 関数パターンマッチングにおいて異なる役割を果たします。主な違いはアンカー ポイントにあります。
re.match
match() 関数は、入力文字列の先頭にパターンが存在するかどうかを検証します。文字列の残りの部分は考慮されず、先頭のみで一致することが保証されます。これは、パターンが文字列内の他の場所に現れたとしても、re.match は結果を返さないことを意味します。
re.search
対照的に、re.search は入力文字列全体を調べて、パターンの出現を検索します。文字列内のどこかでパターンが見つかった場合は、一致オブジェクトを返します。この関数は、文字列の先頭にパターンを必要としないため、re.match より制限が緩くなっています。
重要な考慮事項
使用する関数を選択するときは、次の点を考慮してください。以下:
実際の例
違いとして、次の文字列を考えてみましょう。
"This is a sentence with multiple words."
パターン "This" で re.match を使用すると成功しますが、文字列の先頭に "This" が表示されるため re.search を使用しても成功します。ただし、パターン「with」を検索すると、「with」が文字列の先頭にならないため、re.search のみが結果を返します。
次に、改行を含む文字列を考えてみましょう:
"Line 1\nLine 2"
re.match("^Line 2", string, re.MULTILINE) の使用は失敗します。「^」は文字列の先頭にアンカーされており、文字列の後には一致しないためです。改行。ただし、 re.search("^Line 2", string, re.MULTILINE) は、 re.search には同じ位置制約がないため成功します。
以上がPython の「re.match」と「re.search」の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。