2011-11-27 43 views
0

我有一段腳本掃描了一段文本,並返回了一個我將保存到數組中的組。代碼如下所示:與正則表達式,findall和組匹配的Python模式

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

謝謝...要試着在我的腳本中實現這個... –