2017-10-16 66 views
-1

我想提取郵件地址包含在網站上的條目(並導出爲CSV)。該頁面被編碼,使得超過400個包含地址的條目被分組到單個網絡元素中,並且數據不能被自動刮取。地址出現在每個單個條目的兩個相同的字符串之間。提取字符串之間的字符串

E.g.

「4pm to 9pm,12345 Main St,Seattle,WA,帶上朋友!

+1

1.什麼是那些字符串('地址出現在每個單個條目的兩個相同的字符串之間') 2.你有沒有嘗試過一些東西? – user2887596

+0

1.例子? 2.做了什麼(代碼)? 3.你遇到了什麼問題? – 0andriy

+0

是的,我已經花了幾個小時在RegEx試圖派生一個表達式來做到這一點 - 沒有骰子。我對HTML,RegEx和Java的知識極其有限,儘管我花了相當多的時間試圖獲得今天上午需要的東西。 – user8786729

回答

0

您可以使用正則表達式來實現這一點。您沒有提供任何有關您將使用的程序語言的詳細信息,因此我只會涵蓋正則表達式部分(然後您可以對如何使用您的首選語言進行研究 - 幾乎所有語言都提供了極大的支持常用表達)。

讓我們字符串

「下午4點至晚上9點,12345 MAIN ST,西雅圖,華盛頓,帶朋友!」

使用正則表達式來提取你想要的字符串的一部分:

/^4pm to 9pm, ([A-Za-z0-9, ]+), Bring friends\!$/ 

可以調整來參加你的需要(只提供字符串的1個樣品,其他樣品可以影響結果)。嘗試在regex101.com

UPDATE:

基礎上的評論,你可以使用正則表達式,如:

/pm\n([A-Za-z0-9, ]+)\nInstructors/ 

您應該修改字符類(可以出現在地址的字符) 。我已經在regex101.com上進行了測試,並且它適用於您在評論中提供的示例。

+0

我嘗試將其轉換爲實際的字符串,但它不起作用。以下是其中一個實際參賽作品的剪輯: 「2017年10月12日星期四下午4點至晚上9點nEagle住房抵押貸款,1110學院聖SE Ste C雷西\ n指示:Kirk D.,Lacey \ n和Sarah,Weichert房地產經紀人 - 奧林匹亞\ n請注意:如需預訂致電或發郵件給homebuyerclasswa @。請帶上麻袋午餐,需要預約,座位有限,提供茶點。「 **所有地址介於「pm \ n」和「\ nInstructors」之間** – user8786729

+0

太棒了,明白了。謝謝你幫助noob。 :) – user8786729

+0

最後一件事:可以調整表達式來放棄「pm \ n」和「\ nInstructors」?現在,它正在提取地址和相鄰的字符串。 – user8786729

相關問題