2015-01-23 6 views
-1

목록에서 두 개의 숫자가 연속적으로 나오는 것을 찾으려고합니다.특정 문자 발생 목록 검색

import re 
list1 = ["something10", "thing01", "thingy05"] 
list2 = re.findall(re.match([0-1][0-9]), list1) 

위의 코드를 Python 명령 줄에서 시도 할 때마다 다음 오류가 발생합니다.

IndexError: list index out of range 

이 오류의 의미는 무엇이며 어떻게 수정합니까?

답변

1

re.findall은 첫 번째 arg로 패턴 (또는 컴파일 된 RE)을 가져오고 두 번째 arg는 문자열을 취합니다. ! 당신은 모두에 실패하고 -)

re.match는 일치하는 객체 또는 None을 반환하지 않습니다 - 둘 re.findall에 대한 인수로 허용됩니다! 거기에 r'[0-1][0-9]' 패턴을 전달하십시오.

두 번째 인수는 ... 루프를 사용하여 문자열이 아닌 목록, 그래서 필요 :

list2 = [] 
for astring in list1: 
    list2.extend(re.findall(r'[0-1][0-9]', astring))