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

Pythonのmatch()関数とは?reモジュールの基本と使い方を解説

Pythonでは、match()は標準ライブラリのreモジュールが提供するメソッドの一つで、文字列の先頭が指定した正規表現パターンと一致するかどうかを判定するために使用されます。

構文

match()の基本構文は以下の通りです。

re.match(pattern, string)

このメソッドは、パターンが文字列の先頭で一致した場合にのみマッチオブジェクトを返します。例えば、文字列「TP Tutorials Point TP」に対してパターン「TP」を検索すると、文字列が「TP」で始まっているためマッチします。しかし、パターンとして「Tutorials」を指定した場合、文字列の先頭に存在しないためマッチしません。

例1:先頭のパターンにマッチする場合

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

出力

<re.Match object; span=(0, 2), match='TP'>

この出力は、パターンとのマッチが見つかったことを示しています。マッチした文字列そのものを取得するには、group()メソッドを使用します。また、パターン文字列の先頭に「r」を付けるとraw文字列(エスケープシーケンスを無効化した文字列)として扱われ、正規表現をそのまま記述できるため推奨されています。

例2:group()でマッチした文字列を取得する

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

出力

TP

例3:先頭以外のパターンを検索した場合

次に、同じ文字列から「Tutorials」を検索してみましょう。文字列は「Tutorials」ではなく「TP」で始まっているため、マッチは見つかりません。

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

出力

None

このように、re.match()はマッチが見つからない場合にNoneを返します。なお、文字列内の任意の位置にあるパターンを検索したい場合は、re.search()re.findall()などの関数を使用すると便利です。

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

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

  2. Pythonの無名関数(ラムダ式)とは?基本構文と実用的な使い方をわかりやすく解説

    Pythonにおける無名関数とは Pythonにおける無名関数(匿名関数)とは、その名のとおり「関数名を持たない関数」のことです。通常の関数は def キーワードを使って定義しますが、無名関数は lambda キーワードを使って定義します。このため、無名関数は「ラムダ関数」あるいは「ラムダ式」とも呼ばれています。 ラムダ式の基本的な構文 ラムダ式は次のような形式で記述します。 lambda 引数: 式 引数を受け取り、コロン(:)以降の式の評価結果を自動的に返り値として返します。return 文を書く必要がない点が特徴です。 # 通常の関数定義 def square(x): ret