Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの正規表現入門:re.match()とre.search()の違いをわかりやすく解説

Pythonで正規表現を扱う際によく使われるのが、標準ライブラリ re モジュールに含まれる re.match()re.search() の2つのメソッドです。どちらも文字列からパターンを探す機能を持ちますが、動作には重要な違いがあります。

re.match():文字列の先頭だけをチェックする

re.match() は、文字列の先頭でパターンがマッチした場合にのみ結果を返します。先頭以外の場所でパターンが見つかっても、マッチとはみなされません。

例として、文字列「TP Tutorials Point TP」に対してパターン「TP」で match() を呼び出すと、文字列が「TP」で始まっているためマッチが成功します。

コード例

import re

result = re.match(r'TP', 'TP Tutorials Point TP')
print(result.group(0))

実行結果

TP

re.search():文字列全体からパターンを探す

re.search()re.match() と似ていますが、文字列の先頭に限定されず、文字列全体からパターンを検索できる点が異なります。

同じ文字列「TP Tutorials Point TP」の中間にある「Tutorials」を探してみましょう。

コード例

import re

result = re.search(r'Tutorials', 'TP Tutorials Point TP')
print(result.group(0))

実行結果

Tutorials

このように、search() メソッドを使えば、文字列内の任意の位置にあるパターンを見つけることができます。

使い分けのポイント

  • re.match():文字列が特定のパターンで始まっているかどうかを確認したい場合に適しています。
  • re.search():文字列のどこかにパターンが含まれているかどうかを調べたい場合に適しています。

なお、どちらのメソッドもマッチが見つからない場合は None を返すため、実際のコードでは戻り値が None でないことを確認してから group() を呼び出すのが安全です。

  1. Pythonの正規表現とは?基本の考え方と主な使い方をわかりやすく解説

    正規表現とは何か 正規表現(Regular Expression)とは、文字列の中から特定のパターンを検索したり置換したりするために用いられる、文字の並び(パターン)のことです。シンプルに言えば、「文字列の中から目的のパターンを見つけ出し、必要に応じて書き換えるための記法」と理解するとよいでしょう。 正規表現はPythonだけでなく、Perl、R、Javaなど、ほとんどのプログラミング言語でサポートされており、テキスト処理における共通の基礎技術となっています。 正規表現が活躍する場面 正規表現は、ソースコード、ログファイル、スプレッドシート、さらにはドキュメントといったテキストデータから情報

  2. Pythonの正規表現で文字列が英数字のみかどうかを判定する方法

    正規表現を使った英数字チェックの基本Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。この正規表現の意味は以下の通りです。^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証実行例>>> import