2011-11-27 4 views
0

텍스트를 스캔하여 배열로 저장하는 그룹을 반환하는 스크립트가 있습니다. 코드는 다음과 같습니다정규식, findall 및 그룹과 일치하는 파이썬 패턴

pattern = re.compile(r'<span id="first_name">(.+?)</span>') 
matches = pattern.findall(str(my_text_file)) 

이 멋진 작품과 내 텍스트 파일에 처음으로 이름을 검색하고이 일을 배열로 쓸 수 :

for firstname in matches: 
    if firstname not in list_of_names: 
     list_of_names.append(firstname) 

하지만 지금 내 패턴을 확장 할 필요를 하나가 아닌 두 개의 그룹을 검색하려면 두 번째 그룹에 어떻게 접근해야하는지 잘 모릅니다. 나는 다른 배열에서 그 두 번째 그룹 (성과 이름)을 넣어 가정하고 어떻게

pattern = re.compile(r'<span id="first_name">(.+?)</span><span id="last_name">(.+?)</span>') 
matches = pattern.findall(str(my_text_file)) 

: 내가 좋아하는 뭔가를

?

+0

* 시도해 본 내용 * 'pattern.findall'이 돌아 오는 것을 보았습니까? 반환해야 할 내용을 확인하기 위해 설명서를 읽었습니까? –

+0

python 문서에서는 "그룹 목록을 반환합니다. 패턴에 그룹이 두 개 이상있는 경우에는 튜플 목록이됩니다. 빈 일치는 다른 일치 항목의 시작 부분에 닿지 않는 한 결과에 포함됩니다." 그래서 튜플리스트를 얻게 될 것 같아요.하지만 기본적으로 영어를 말하지 않기 때문에 이것을 이해하지 못합니다 .... –

답변

2
for match in matches: 
    first_names.append(match[0]) 
    last_names.append(match[1]) 
+0

감사합니다 ... 내 스크립트에서 이것을 구현하려고합니다 ... –

관련 문제