답변:
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
내가 찾던 것이 었습니다. 하나는 Match 객체와 다른 문자열을 반환하는 것에 놀랐습니다. match_all
또는 match_iter
함수 를 사용할 것으로 기대했습니다 .
re.search
루프에서 사용하십시오 . Match
객체를 반환 합니다. 당신은에서 전달하려는 것 Match.start() + 1
은 AS pos
에 대한 인수 re.search
루프의 다음 반복합니다.
findall
일치하는 문자열 목록이 아닌 일치하는 튜플 목록을 반환합니다.