Pythonのre.match関数は、指定したパターンが文字列の先頭でマッチするかどうかを調べるために使われます。マッチが成功した場合には、テキストに関する情報を含むマッチオブジェクトを返します。
import re
# 正規表現パターンを定義する
pattern = r"hello"
# テキストを定義する
text = "hello, world!"
# パターンとテキストをマッチさせる
match = re.match(pattern, text)
if match:
print("マッチが成功しました!")
matched_text = match.group() # マッチしたテキストを取得
match_start = match.start() # マッチの開始位置を取得
match_end = match.end() # マッチの終了位置を取得
print("マッチしたテキスト:", matched_text)
print("マッチの開始位置:", match_start)
print("マッチの終了位置:", match_end)
else:
print("マッチが失敗しました。")
このコードでは、正規表現パターンとして hello を定義し、テキストとして hello, world! を定義しています。re.match(pattern, text) を使用して、パターンとテキストをマッチさせます。マッチが成功した場合、if match: の条件が True となり、if ブロック内のコードを実行します。
さらに、Pythonのassertステートメントは、指定した条件がTrueであることを確認します。もし条件がFalseであれば、AssertionErrorを発生させます。これは、テストを行う際に特に役立ちます。例えば、上記のコードを以下のように書き換えることができます。
import re
# 正規表現パターンを定義する
pattern = r"hello"
# テキストを定義する
text = "hello, world!"
# パターンとテキストをマッチさせる
match = re.match(pattern, text)
# マッチが成功したことを確認する
assert match is not None, "マッチが失敗しました。"
# マッチしたテキストを取得し、期待する値であることを確認する
matched_text = match.group()
assert matched_text == "hello", f"予期せぬマッチしたテキスト: {matched_text}"
# マッチの開始位置と終了位置を取得し、期待する値であることを確認する
match_start = match.start()
match_end = match.end()
assert match_start == 0, f"予期せぬマッチの開始位置: {match_start}"
assert match_end == 5, f"予期せぬマッチの終了位置: {match_end}"
このように、re.matchとassertを組み合わせることで、Pythonのコードが期待通りに動作していることを確認するテストを書くことができます。これは、コードの品質を保つために非常に重要なステップです。
以上が、Pythonのre.match関数とassertステートメントの基本的な使い方とその活用例です。これらの知識を活用して、より高品質なPythonコードを書くことができるようになりましょう。