1. ホーム
  2. python

[解決済み] Pythonで正規表現にマッチするものをすべて見つけるにはどうしたらいいですか?

2022-03-24 02:42:31

質問

私が書いているプログラムでは、Pythonに re.search() 関数を使って、テキストブロックの中からマッチするものを探し、その結果を表示します。しかし、プログラムはテキストブロックの最初のマッチを見つけると終了してしまいます。

どうすれば、すべてのマッチが見つかるまではプログラムが停止しないようなことを繰り返し行えるのでしょうか?これを行うための別の関数はありますか?

どのように解決するのですか?

使用方法 re.findall または re.finditer の代わりに

re.findall(pattern, string) は、マッチする文字列のリストを返します。

re.finditer(pattern, string) に対するイテレータを返します。 MatchObject オブジェクトを作成します。

re.findall( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')
# Output: ['cats', 'dogs']

[x.group() for x in re.finditer( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')]
# Output: ['all cats are', 'all dogs are']