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()を使用するとよいでしょう。
-
Pythonの名前空間とは?仕組みとスコープの関係をわかりやすく解説
Pythonにおける名前空間の基本名前空間(namespace)とは、変数名とオブジェクトを対応付ける仕組みであり、スコープ(名前の有効範囲)を実現するための基盤となるものです。Pythonでは、パッケージ、モジュール、クラス、関数、メソッドなど、それぞれが独自の「名前空間」を持ち、その中で変数名が解決されます。名前空間の生成と破棄関数やモジュール、パッケージが評価されて実行が始まると、そのための新しい名前空間が作成されます。これは「評価コンテキスト」と捉えると理解しやすいでしょう。そして、関数などの実行が終了すると、その名前空間は破棄され、そこに含まれていた変数も一緒に消えます。さらに、ロー
-
Pythonの無名関数(ラムダ式)とは?基本構文と実用的な使い方をわかりやすく解説
Pythonにおける無名関数とは Pythonにおける無名関数(匿名関数)とは、その名のとおり「関数名を持たない関数」のことです。通常の関数は def キーワードを使って定義しますが、無名関数は lambda キーワードを使って定義します。このため、無名関数は「ラムダ関数」あるいは「ラムダ式」とも呼ばれています。 ラムダ式の基本的な構文 ラムダ式は次のような形式で記述します。 lambda 引数: 式 引数を受け取り、コロン(:)以降の式の評価結果を自動的に返り値として返します。return 文を書く必要がない点が特徴です。 # 通常の関数定義 def square(x): ret