Python正規表現-ワイルドカード表現から複数のグループをキャプチャする方法は?
-
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")
所属していません StackOverflow