Python正規表現-ワイルドカード表現から複数のグループをキャプチャする方法は?

StackOverflow https://stackoverflow.com/questions/464736

  •  19-08-2019
  •  | 
  •  

質問

0回または複数回発生する可能性のあるグループを含むPython正規表現がありますが、その後グループのリストを取得すると、最後のグループのみが存在します。例:

re.search("(\w)*", "abcdefg").groups()

これはリスト( 'g'、)を返します

( 'a'、 'b'、 'c'、 'd'、 'e'、 'f'、 'g'、)を返す必要がある

それは可能ですか?どうすればいいですか?

役に立ちましたか?

解決

に加えてダグラス・リーダーの解決策、ここに説明があります:

正規表現では、グループカウントは固定されています。グループの後ろに数量詞を配置しても、グループカウントは増加しません(より一般的なグループが複数回一致したため、他のすべてのグループインデックスが増加することを想像してください)。

数量詞を含むグループは、複数回一致する必要がある場合に、複雑な部分式をアトミックにする方法です。正規表現エンジンには、最後の一致をグループにのみ保存する以外の方法はありません。要するに、単一の<!> quot; unarmed <!> quot;で目的を達成する方法はありません。正規表現。別の方法を見つける必要があります。

他のヒント

re.findall(r"\w","abcdefg")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top