正規表現とは何か
正規表現(Regular Expression)は、文字列のパターンを表現するための強力な言語です。これは、特定の文字、数字、または文字の組み合わせが含まれているかどうかを確認するために使用されます。
例えば、電話番号やメールアドレスなどの特定の形式を持つ文字列を検索したり、テキスト内の特定の単語を見つけ出したりするのに役立ちます。
Pythonでは、re
モジュールを使って正規表現を扱うことができます。このモジュールはPythonの標準ライブラリに含まれており、正規表現のコンパイル、マッチング、検索、分割などの機能を提供しています。
次のセクションでは、Pythonでの正規表現の使用方法について詳しく説明します。それでは、一緒に学んでいきましょう!
Pythonでの正規表現の使用方法
Pythonで正規表現を使用するには、まずre
モジュールをインポートします。このモジュールはPythonの標準ライブラリに含まれており、正規表現のコンパイル、マッチング、検索、分割などの機能を提供しています。
以下に基本的な使用方法を示します。
import re
# 正規表現パターンを作成
pattern = re.compile(r'\d+') # 1つ以上の数字にマッチ
# マッチングを試みる
match = pattern.match('123abc')
if match:
print('Match found:', match.group())
else:
print('No match')
このコードでは、\d+
という正規表現パターンを作成しています。\d
は任意の数字を、+
は1つ以上の繰り返しを表します。したがって、\d+
は1つ以上の数字にマッチします。
match
メソッドは文字列の先頭からパターンにマッチするかどうかを試み、マッチした場合はMatch
オブジェクトを返します。マッチしなかった場合はNone
を返します。Match
オブジェクトのgroup
メソッドを使うと、マッチした文字列を取得できます。
次のセクションでは、特定の長さの数字をマッチングする方法について詳しく説明します。それでは、一緒に学んでいきましょう!
特定の長さの数字をマッチングする方法
Pythonの正規表現では、特定の長さの数字をマッチングするために波括弧 {}
を使用します。これは、直前の文字またはグループが指定した回数だけ繰り返されることを示します。
例えば、\d{3}
は3桁の数字にマッチします。同様に、\d{4,6}
は4桁から6桁の数字にマッチします。
以下に具体的なコードを示します。
import re
# 3桁の数字にマッチする正規表現パターンを作成
pattern = re.compile(r'\d{3}')
# マッチングを試みる
match = pattern.search('abc123def')
if match:
print('Match found:', match.group()) # '123' を出力
else:
print('No match')
このコードでは、r'\d{3}'
という正規表現パターンを作成しています。これは3桁の数字にマッチします。search
メソッドは文字列全体を検索し、パターンにマッチする最初の部分を見つけます。
次のセクションでは、Pythonでの正規表現の応用について詳しく説明します。それでは、一緒に学んでいきましょう!
Pythonでの正規表現の応用
Pythonの正規表現は、単純なマッチングだけでなく、より複雑な文字列処理タスクにも使用できます。以下に、その応用例をいくつか示します。
複数のパターンのマッチング
|
演算子を使用すると、複数のパターンをマッチングすることができます。これは「または」を意味します。
import re
# 'abc'または'def'にマッチする正規表現パターンを作成
pattern = re.compile(r'abc|def')
# マッチングを試みる
match = pattern.search('123abcdef456')
if match:
print('Match found:', match.group()) # 'abc' を出力
else:
print('No match')
グループ化
括弧 ()
を使用すると、正規表現内の部分をグループ化できます。これにより、マッチした各グループの内容を個別に取得することができます。
import re
# 電話番号にマッチする正規表現パターンを作成
pattern = re.compile(r'(\d{3})-(\d{3})-(\d{4})')
# マッチングを試みる
match = pattern.search('My number is 123-456-7890.')
if match:
print('Match found:', match.group()) # '123-456-7890' を出力
print('Area code:', match.group(1)) # '123' を出力
else:
print('No match')
置換
sub
メソッドを使用すると、マッチした部分を別の文字列に置換することができます。
import re
# 'abc'にマッチする正規表現パターンを作成
pattern = re.compile(r'abc')
# 'abc'を'xyz'に置換
result = pattern.sub('xyz', '123abcdef456')
print(result) # '123xyzdef456' を出力
以上がPythonでの正規表現の基本的な応用例です。これらのテクニックを組み合わせることで、さまざまな文字列処理タスクを効率的に行うことができます。ぜひ活用してみてください!