回答:
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']
finditer
私が探していたものでした。1つがMatchオブジェクトと他の文字列を返すことに驚いています。match_all
またはmatch_iter
関数を使用することを期待していました。
re.search
ループで使用します。Match
オブジェクトを返します。ループの次の反復の引数Match.start() + 1
として渡す必要があります。pos
re.search
findall
は一致する文字列のリストではなく、一致するタプルのリストを返します。