2015-10-13 118 views
-5

我正在用python編寫HTML解析器,並且爲了從我使用正則表達式的標記中提取HTML屬性。這是我正在使用的表達式爲什麼這個正則表達式不匹配HTML標籤?

tag_exp = r'</?(?P<name>[a-z A-Z]+) (?P<attribute>[a-z A-Z]+="[\w]+")* /?>' 
matches = re.match(tag_exp, '<img src="test.jpg" alt="test">') 

但它不匹配任何東西。我一直試圖弄清楚一段時間,我做錯了什麼?

+5

Python有*這麼多*庫。使用它們,它們比正則表達式更好。 – ssube

+3

你不能用正則表達式解析HTML。想都別想。 –

+3

正則表達式不用於掃描HTML文檔。這就像打開大門遺忘,釋放kraken,挖掘惡臭...... * _sic_ *請使用類似[Beautiful Soup](http://www.crummy.com/software/BeautifulSoup/)的圖書館 – KarelG

回答

0

改爲使用BeautifulSoup。檢查這個例子。

import BeautifulSoup 
html = '<p class="c4">SOMETEXT</p><p class="c5"></p>' 
soup = BeautifulSoup.BeautifulSoup(html) 
print [tag.attrs for tag in soup.findAll('p') if tag.string] 
相關問題