コンテンツにスキップ

[正規表現] FAQ

正規表現のFAQ

名前付きキャプチャで文字列を抽出したい

matchでキャプチャのパターン手前に?<名前>を入れる。
(?<名前>パターン)のようにカッコの中なので注意。

"tadashi-aikawa".match(/(?<firstName>.+)-(?<lastname>.+)/).groups
// -> {firstName: "tadashi", lastname: "aikawa"}

reモジュールのmatchでキャプチャのパターン手前に?P<名前>を入れる。
JavaScriptとは異なり ? のあとに P が入るので要注意。

import re

re.match(r'(?P<firstName>.+)-(?P<lastname>.+)', 'tadashi-aikawa').groupdict()
# -> {'firstName': 'tadashi', 'lastname': 'aikawa'}