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

Pythonのre.search()関数とは?正規表現で文字列を検索する方法を解説

Pythonにおいて、search()は標準ライブラリのreモジュールに含まれるメソッドの一つです。正規表現パターンを使って文字列内を検索し、パターンに一致する最初の部分を見つけるために使用されます。

search()の構文

re.search(pattern, string)

第一引数には検索したい正規表現パターン、第二引数には検索対象となる文字列を指定します。

re.match()との違い

re.search()re.match()とよく似ていますが、決定的な違いがあります。re.match()文字列の先頭でのみ一致を判定するのに対し、re.search()文字列全体から任意の位置にあるパターンを探します。

例えば、文字列「TP Tutorials Point TP」の中から「Tutorials」というパターンを検索する場合、re.match()では先頭が「TP」で始まっているため一致しませんが、re.search()なら文字列の途中にある「Tutorials」を正しく見つけ出すことができます。

使用例

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

実行結果

Tutorials

注意点

search()メソッドは文字列のどの位置からでもパターンを検索できる一方で、返すのは最初に一致した箇所のみである点に注意が必要です。文字列内のすべての一致を取得したい場合は、代わりにre.findall()re.finditer()を使用するとよいでしょう。

  1. Pythonの名前空間とは?仕組みとスコープの関係をわかりやすく解説

    Pythonにおける名前空間の基本名前空間(namespace)とは、変数名とオブジェクトを対応付ける仕組みであり、スコープ(名前の有効範囲)を実現するための基盤となるものです。Pythonでは、パッケージ、モジュール、クラス、関数、メソッドなど、それぞれが独自の「名前空間」を持ち、その中で変数名が解決されます。名前空間の生成と破棄関数やモジュール、パッケージが評価されて実行が始まると、そのための新しい名前空間が作成されます。これは「評価コンテキスト」と捉えると理解しやすいでしょう。そして、関数などの実行が終了すると、その名前空間は破棄され、そこに含まれていた変数も一緒に消えます。さらに、ロー

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

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