我對Python和正則表達式相當陌生,我想知道如何提取電子郵件地址的第一部分直到域名。因此,例如,如果:python正則表達式獲取電子郵件地址的第一部分
s='[email protected]'
我想正則表達式的結果進行(考慮到電子郵件ID的所有的「種種」,即包括數字等):
xjhgjg876896
我的想法的正則表達式 - 因爲我知道我需要掃描直到「@」然後存儲結果 - 但我不確定如何在python中實現這一點。
謝謝你的時間。
我對Python和正則表達式相當陌生,我想知道如何提取電子郵件地址的第一部分直到域名。因此,例如,如果:python正則表達式獲取電子郵件地址的第一部分
s='[email protected]'
我想正則表達式的結果進行(考慮到電子郵件ID的所有的「種種」,即包括數字等):
xjhgjg876896
我的想法的正則表達式 - 因爲我知道我需要掃描直到「@」然後存儲結果 - 但我不確定如何在python中實現這一點。
謝謝你的時間。
你應該只使用字符串的方法split
:
s.split("@")[0]
這不適用於* John Smith <[email protected]> * – 2013-03-04 20:37:28
@MaksymPolshcha這樣的電子郵件:OP沒有指定這是可能的輸入。 – 2013-03-04 20:46:29
這不是一個正則表達式,就像OP問的那樣。 – 2013-03-04 20:48:01
正如其他人所指出的,更好的解決方案是使用split
。
如果你使用regex
真正熱衷那麼這應該工作:
import re
regexStr = r'^([^@]+)@[^@]+$'
emailStr = '[email protected]'
matchobj = re.search(regexStr, emailStr)
if not matchobj is None:
print matchobj.group(1)
else:
print "Did not match"
,並打印出
foo
注:這將只與電子郵件字符串工作[email protected]
。如果您想匹配類型NAME<[email protected]>
的電子郵件,則需要調整正則表達式。
它很好用..修正了一些錯別字和其他小事情,但它的效果很好..採用「第一部分」並在@符號前加上「firstpart.withdot」.. – 2016-05-22 22:50:53
幾個月後回寫EmailExtractor.py。您可能喜歡嘗試並根據需要對其進行修改。它提取電子郵件地址。你可以用'@'分隔輸出(推薦)或修改正則表達式。
下面應該可以幫助你做到這一點:
fromAddr = message.get('From').split('@')[1].rstrip('>')
fromAddr = fromAddr.split(' ')[0]
很好的答案已經回答了,但我想放曠反正。
如果我有一個電子郵件[email protected]我想只是「約翰」。
我想只有 「約翰」
如果我有一個電子郵件[email protected]。COM我想只是 「約翰」
我只想得到 「約翰」
所以這是我做過什麼:
name = recipient.split("@")[0]
name = name.split(".")[0]
print name
歡呼
#!/usr/bin/python3.6
def email_splitter(email):
username = email.split('@')[0]
domain = email.split('@')[1]
domain_name = domain.split('.')[0]
domain_type = domain.split('.')[1]
print('Username : ', username)
print('Domain : ', domain_name)
print('Type : ', domain_type)
email_splitter('foo.g[email protected]')
輸出:
Username : foo.goo
Domain : bar
Type : com
你是否需要使用正則表達式(例如,作爲家庭作業的一部分或什麼)?或者你只是猜測沒有其他方法可以做到這一點? – abarnert 2013-03-04 20:31:54
如果您需要使用正則表達式,您將不得不閱讀關於它們的教程以及Python're'模塊。如果我只是說「使用're.match('^(。*?)@',s)'」,你不會知道如何使用返回的東西,如何調試或擴展它等,所以你是重點? – abarnert 2013-03-04 20:34:56
你是否也想解析這些有效的電子郵件地址:'Tony Snow <[email protected]>'和'(tony snow)tony @ example.com'?你想從'tony%example.com @ example.org'返回什麼?當前的電子郵件地址格式標準位於:http://www.rfc-editor.org/rfc/rfc5322.txt – 2013-03-04 20:36:27