文字列があり、抽出する必要があります。問題は、繰り返しの中で繰り返しを説明できないことです。コードは次のとおりです。
f = "Makimak-cg_mk_Mokarmi"
pattern = "([A-Za-z][A-Za-z0-9]+)((?:[-_]([a-z]{2}))+)"
mO = re.match(pattern, f)
print mO.groups()
結果は次のようになります。
('Makimak', '-cg_mk', 'mk')
しかし、私はこのようなタプルを取得したいと思います:
('Makimak', '-cg_mk', 'cg', 'mk')
そのため、2 つの文字パターンの繰り返しを含むグループ "-cg_mk" があります。しかし、そのようなことはありません:
[a-z]{2}+
結果のグループは、ここで表された繰り返しの最後の部分のみを返します。
([a-z]{2})
私の考えでは、次のような「+」もあるはずです。
([a-z]{2})+
同じ結果が得られます。一致オブジェクトが生成されますが、必要なグループを取得できません。