Python正規表現の基本例:re.match()とre.search()の使い方と違い
Pythonで正規表現を扱う際に最もよく使われるのが re モジュールです。ここでは、その中でも基本となる re.match() と re.search() の2つのメソッドについて、具体的なコード例を交えて解説します。
re.match():文字列の先頭だけを検索する
re.match() メソッドは、パターンが文字列の先頭でマッチした場合にのみ結果を返します。
例えば、文字列「TP Tutorials Point TP」に対してパターン「TP」でマッチを試みると、文字列が「TP」で始まっているためマッチに成功します。しかし、「Tutorials」というパターンで検索しても、文字列の途中にあるためマッチしません。
コード例
import re
result = re.match(r'TP', 'TP Tutorials Point TP')
print(result)
実行結果
<re.Match object; span=(0, 2), match='TP'>
このように、re.match() はマッチオブジェクトを返します。マッチしなかった場合は None が返されます。
re.search():文字列全体から最初の一致を探す
re.search() メソッドも re.match() と似ていますが、大きな違いがあります。文字列の先頭に限定されず、文字列全体からパターンを検索します。
そのため、re.match() では見つけられなかった「Tutorials」というパターンでも、re.search() を使えば文字列の途中からでもマッチさせることができます。
コード例
import re
result = re.search(r'Tutorials', 'TP Tutorials Point TP')
print(result.group())
実行結果
Tutorials
両者の違いまとめ
- re.match():文字列の先頭でのみマッチを判定する
- re.search():文字列の任意の位置からパターンを検索できる
なお、re.search() は文字列内のどこにあってもパターンを見つけられますが、返すのは最初に見つかった1件のみである点に注意してください。すべての一致箇所を取得したい場合は、re.findall() や re.finditer() を使うと便利です。
-
Pythonの予約キーワード(予約語)とは?一覧と確認方法をわかりやすく解説
予約語(キーワード)とは予約語(reserved words)は「キーワード」とも呼ばれ、言語仕様の中であらかじめ意味と構文が定義された特別な単語のことです。条件分岐やループ処理といったプログラミング命令を記述する際には、必ずこれらのキーワードを使用します。重要なポイントとして、予約語は変数名や関数名など、他のプログラミング要素の識別子(identifier)として使用できません。例えば「def」や「import」という名前の変数を作成しようとすると、SyntaxError(構文エラー)が発生します。Python 3の予約キーワード一覧以下は、Python 3で定義されている予約キーワードの一
-
Pythonの正規表現で文字列が英数字のみかどうかを判定する方法
正規表現を使った英数字チェックの基本Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。この正規表現の意味は以下の通りです。^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証実行例>>> import