-2

文字列があり、抽出する必要があります。問題は、繰り返しの中で繰り返しを説明できないことです。コードは次のとおりです。

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})+

同じ結果が得られます。一致オブジェクトが生成されますが、必要なグループを取得できません。

4

1 に答える 1