正規表現
パターンマッチングを行うための表現。
正規表現
パターンマッチングを行うための表現。
メタ文字
特別な意味を持つ文字。
キャプチャグループ
パターンの一部をグループ化。
量指定子
繰り返しを指定する文字。
先読み
後ろの文字を確認する。
後読み
前の文字を確認する。
正規表現の基本
なぜ正規表現が必要か?
正規表現は、文字列のパターンを記述して、検索・置換・抽出を行うのに適しています。特に、複雑なパターンを扱う場合に有効です。
いつ使うか?
- 文字列を検索する場合
- 文字列を置換する場合
- 文字列を抽出する場合
- バリデーションを行う場合
実践テクニック
raw文字列を使う
raw文字列(r"")を使うことで、エスケープを回避できます。これにより、正規表現を簡潔に記述できます。
reモジュールを使う
reモジュールを使うことで、正規表現を操作できます。re.search()、re.match()、re.sub()などの関数を使用します。
# 正規表現の基本import re
# 文字列の検索text = "Hello, World!"pattern = r"World"match = re.search(pattern, text)print(match.group()) # World
# 文字列の置換text = "Hello, World!"pattern = r"World"replacement = "Python"result = re.sub(pattern, replacement, text)print(result) # Hello, Python!
# メタ文字pattern = r"\d+" # 数字1文字以上match = re.search(pattern, "123")print(match.group()) # 123メタ文字
なぜメタ文字が必要か?
メタ文字は、パターンを記述するのに適しています。特別な意味を持つ文字で、複雑なパターンを簡潔に記述できます。
いつ使うか?
- 任意の文字をマッチする場合
- 繰り返しを指定する場合
- 文字クラスを指定する場合
- グループ化を行う場合
実践テクニック
エスケープを使う
エスケープ(\)を使うことで、メタ文字を通常文字として扱えます。これにより、ドットやアスタリスクなどをマッチできます。
文字クラスを使う
文字クラス([])を使うことで、複数の文字を指定できます。これにより、パターンを簡潔に記述できます。
高度な使い方
なぜ高度な使い方が必要か?
高度な使い方は、複雑なパターンを記述するのに適しています。キャプチャグループ、量指定子、先読み・後読みなどの高度な機能を使用します。
いつ使うか?
- キャプチャグループを使う場合
- 量指定子を使う場合
- 先読み・後読みを使う場合
- 複雑なパターンを記述する場合
実践テクニック
キャプチャグループを使う
キャプチャグループ(())を使うことで、パターンの一部を抽出できます。これにより、マッチした部分を個別に処理できます。
量指定子を使う
量指定子(*、+、?、{})を使うことで、繰り返しを指定できます。これにより、パターンを簡潔に記述できます。
# 正規表現の高度な使い方import re
# キャプチャグループtext = "John Doe"pattern = r"(\w+) (\w+)"match = re.search(pattern, text)print(match.group(1)) # Johnprint(match.group(2)) # Doe
# 量指定子pattern = r"a{2,4}" # aが2〜4回match = re.search(pattern, "aaa")print(match.group()) # aaa
# 先読みと後読みpattern = r"(?<=Hello)\w+" # Helloの後の単語match = re.search(pattern, "Hello World")print(match.group()) # World合格ライン
正規表現を作成できる
文字列を検索できる
文字列を置換できる
メタ文字を使い分けられる
演習課題
課題1: 文字列の検索
正規表現を使って文字列を検索してください。
課題2: 文字列の置換
正規表現を使って文字列を置換してください。
課題3: キャプチャグループの使用
キャプチャグループを使ってパターンの一部を抽出してください。
参考文献
この記事は以下の公的ガイドライン/標準に基づいています。
- re — Regular expression operations - 公式ドキュメント
- Regular Expression HOWTO - 公式ドキュメント