次のような長い文字列があります。
s = 'label("id1","A") label("id1","B") label("id2", "C") label("id2","A") label("id2","D") label("id3","A")'
正規表現を使用して、ID に基づいてラベルのリストを作成したいと思います。
より明確にするためs
に、例の文字列から、次のような結果のリストになりたいと思います。
[("id1", ["A","B"]),
("id2", ["C","A","D"]),
("id3", ["A"])]
正規表現を使用して、ID と要素を取得できました。
import re
regex = re.compile(r'label\((\S*),(\S*)\)')
results = re.findall(regex,s)
このコードでは、results
次のようになります。
[('"id1"', '"A"'),
('"id1"', '"B"'),
('"id2"', '"A"'),
('"id2"', '"D"'),
('"id3"', '"A"')]
正規表現から既に正しくグループ化されたデータを取得する簡単な方法はありますか?