2016-08-20 39 views
-3

我想在IRB中使用Ruby代碼從一長串電子郵件中提取電子郵件。這裏的格式:如何解析此字符串以提取電子郵件?

[email protected]:6c86ba58f135f43b54e33954934e00b8 [email protected]:6c86ba58f135f43b54e33954934e00b8

我有這樣的數千名單,我想刪除該字符串的下半年,只是提取電子郵件。我怎樣才能做到這一點?

我已經試過這樣:

input.split('.').select do |email| 
    email.downcase.include?('@') 
end 
+1

你嘗試過什麼嗎? –

+0

是的,input.split('。')。select do | email | email.downcase.include?('@') end。 –

+1

和你有什麼問題?它不工作或者是什麼? –

回答

1

如何使用split

"[email protected]:6c86ba58f135f43b54e33954934e00b8".split(':')[0] 

編輯:如果郵件是在Array

emails.map { |email| email.split(':')[0] } 
+0

如果我在「電子郵件」數組中有500封電子郵件,該怎麼辦?乾杯! –

+0

查看我的編輯,支持數組中的電子郵件 – kcdragon

+0

感謝kcdragon,幾乎在那裏 - 現在的問題是它只捕獲第一個電子郵件地址。我們需要捕捉所有。該陣列是設置爲這樣,電子郵件= [「[email protected]:1ba6be96f0641665bbcc080d0e47db33 [email protected]:ab85f491d0bc4fbdfa552f1082844234 [email protected]:5f3975d5405d65b3e9f7ef2032b46ed7 [email protected]:3002bc92d52b30252295a1f859afcdab 卡羅爾@ winterstreetdesign - ef41565edff017f3dae9eaff92df7112 [email protected]:491c29c84feb88ca3a65c5757921613e [email protected]:92e5db41232a745819ae520144eb8b22「] –

0

如果郵件被存儲在一個字符串,你可以以獲取所有電子郵件中使用正則表達式。

是這樣的:

address = mails.scan(/(.*@.*?)\:/) 

其中郵件是字符串。

相關問題