2014-04-01 52 views
0

這是我想正則表達式(。):正則表達式匹配點結尾的西班牙語單詞,並強調

([\w\s\/áéíóúüñçåÁÉÍÓÚÜÑÇÐ\-]+)(\.\_) 

這裏有兩個例子,它應該對陣:

EL羅薩里奧/ ESCUINAPA._精讀POCOMÁS德4萬個比索......

Cuautitlán._精讀POCOMÁS德4萬個比索......

表達適用於第一個例子,但不是因爲編碼可能是第二:

docHtml = urllib.urlopen(link).read() 

#using the lxml function html 
tree = html.fromstring(docHtml) 
newsCity = CSSSelector('#pid p') 

try: 
city_paragraph = newsCity(tree) 

city_match = re.search('([\w\s\/áéíóúüñçåÁÉÍÓÚÜÑÇÐ\-]+\._)',city_paragraph[0].text) 
+0

嘗試刪除您的模式中的'^'。 –

+0

爲什麼你有^?如果該單詞是該行中的第一個,那隻會匹配。 – acarlon

+0

編輯q。謝謝 –

回答

0

你的正則表達式出現是正確的。我懷疑這個錯誤在於你如何閱讀你所匹配的字符串。你想要的東西,如:

import codecs 
f = codecs.open('spanish.txt', encoding='utf-8') 
for line in f: 
    print repr(line) 
0

終於想通了:

newsCity = CSSSelector('#tamano5 p') 

city_paragraph = newsCity(tree) 
city_p = city_paragraph[0].text 
city_utf=city_p.encode("utf-8") 
city_match = re.search('([\w\s\/áéíóúüñçåÁÉÍÓÚÜÑÇÐ\-]+\._)',city_utf) 

這給了我預期的結果,在這種情況下是要提取使用re.search城市字符串。

相關問題