好吧,這個有點痛苦。我正在用Python進行一些修改,試圖從幾行標記不佳的HTML中找到一個地址。以下是格式示例:用正則表達式得到一個段落的地址
256-555-5555<br/>
1234 Fake Ave S<br/>
Gotham (Lower Ward)<br/>
我想僅檢索1234 Fake Ave S, Gotham
。有任何想法嗎?我一直在做正則表達式的整個晚上,現在我的大腦是糊塗的...
編輯: 更多關於數據如何到達的可能場景的細節。有時候第一行會在那裏,有時候不會。我所見過的所有地址都有Ave,Way,St,但我不希望將它作爲選擇的一個因素,因爲我不確定它們會一直如此。第二行和第三行是alPhone(或可能的電子郵件或網站):
我腦子裏想的是什麼東西,
- 選擇2日一切最後一行(因此,第二行,如果有三條線,如果沒有電話號碼,那麼只有兩行)。
- 選擇最後一行不在括號內的所有內容。
- 合併第二行到最後一行和最後一行,在兩者之間添加「,」。
我正在使用Scrapy獲取HTML代碼。地址全部在同一個div中,我想用正則表達式將數據進一步分解爲適當的部分。現在怎麼做,這是我無法弄清楚的。
EDIT2:
按奧菲爾的評論,我要指出,我已表達來隔離的電話號碼和括號部分。
電話(或可能的電子郵件或網站):
((1[-. ])?[0-9]{3}[-. ])?\(?([0-9]{3}[-. ][A?([0-9]{4})|([\w\.-][email protected][\w\.-]+)|(www.+)|([\w\.-]*(?:com|net|org|us))
括號:
\((.*?)\)
我不知道如何使用這些構建的一切,但是,這些說法。
你會如何指定「地址」?請詳細說明您的輸入和輸出格式。並考慮一個html解析器。 – Howard
跳過正則表達式並移動到合適的html分析器,比如beautifulsoup –
我實際上使用Scrapy來進行刮擦。我應該更詳細地介紹,我已經更新了描述。 – alukach