Pythonでパターンにマッチした文字列の一部分を抽出するコードを紹介します。
正規表現でパターンにマッチした文字列の一部分を取り出す方法として、正規表現のグループ機能を利用します。
今回は名前付きグループの機能を利用して文字列を取り出します。
マッチオブジェクトのグループを参照する書式は以下です。
名前付きグループの書式は次の通りです。
マッチオブジェクトのグループを参照する書式は以下です。
pattern = re.compile(r'(?P<left>\w*)=(?P<right>\w*)')
pattern = re.compile(r'"(?P<value>[0-9]*)"')
以下のコードを記述します。
stringValue = 'mykey : PenguinCookie'
pattern = re.compile(r'([A-Za-z0-9\s]*):([A-Za-z0-9\s]*)')
match = pattern.search(stringValue)
if match:
print('キー名:' + match.group(1).strip());
print('値:' + match.group(2).strip());
else:
print('みつかりませんでした')
パターンオブジェクトを作成します。今回のマッチパターンではグループ機能を利用し ":" 文字の左側と右側を
それぞれ取り出す正規表現式を記述しています。
stringValue = 'mykey : PenguinCookie'
pattern = re.compile(r'([A-Za-z0-9\s]*):([A-Za-z0-9\s]*)')
searchメソッドを呼び出し文字列を検索します。
match = pattern.search(stringValue)
matchオブジェクトを確認し、結果がある場合は、key, value それぞれのグループの結果を出力します。
最初のグループが group(1)
次のグループが group(2)
でアクセスできます。
結果から前後の空白文字を除去するため、strip() メソッドを呼び出しています。
結果が見つからなかった場合は、matchオブジェクトがNoneになるため「みつかりませんでした」の文字列を出力します。
if match:
print('キー名:' + match.group(1).strip());
print('値:' + match.group(2).strip());
else:
print('みつかりませんでした')
以下のコードを記述します。
stringValue = 'mykey : PenguinCookie'
pattern = re.compile(r'(?P<key>[A-Za-z0-9\s]*):(?P<value>[A-Za-z0-9\s]*)')
match = pattern.search(stringValue)
if match:
print('キー名:' + match.group('key').strip());
print('値:' + match.group('value').strip());
else:
print('みつかりませんでした')
パターンオブジェクトを作成します。今回のマッチパターンではグループ機能を利用し ":" 文字の左側と右側を
それぞれ取り出す正規表現式を記述しています。
stringValue = 'mykey : PenguinCookie'
pattern = re.compile(r'(?P<key>[A-Za-z0-9\s]*):(?P<value>[A-Za-z0-9\s]*)')
searchメソッドを呼び出し文字列を検索します。
match = pattern.search(stringValue)
matchオブジェクトを確認し、結果がある場合は、key, value それぞれのグループの結果を出力します。
結果から前後の空白文字を除去するため、strip() メソッドを呼び出しています。
結果が見つからなかった場合は、matchオブジェクトがNoneになるため「みつかりませんでした」の文字列を出力します。
if match:
print('キー名:' + match.group('key').strip());
print('値:' + match.group('value').strip());
else:
print('みつかりませんでした')
上記のプログラムを実行します。下図の結果が表示されます。
":" で区切られた前後のキー名と値名がそれぞれ取得できています。
stringValue変数の文字列を下記に変更して再度実行します。
stringValue = 'mykey = PenguinCookie'
パターンにマッチしないため、「みつかりませんでした」のメッセージが表示されます。
正規表現のグループを利用して、パターンにマッチした文字列の一部を取り出す処理が実装できました。