2011-05-02 44 views
1

使用正則表達式過濾電子郵件地址:我是新來的正則表達式,希望有人能夠幫助。使用正則表達式匹配電子郵件地址的模式

我想匹配模式具有以下格式的電子郵件地址字符串:

[email protected]

我想肯定有一個時期地方之前「@」字符,而且「@」字符後的字符匹配gmail.com

感謝, 布拉德

+0

什麼編程語言? – 2011-05-02 19:11:57

回答

3

你一些符號前,後點希望,所以我會建議.+\[email protected]\.com

.+表示任何符號(。)可以出現1次或多次(+)
\.表示點符號;用反斜槓進行篩選以抑制.的特殊含義
@gmailcom應該完全匹配。

又見Regular Expression Basic Syntax Reference

編輯:帳戶名稱Gmail的規則只允許拉丁文字母,數字和點,所以更好的正則表達式是
[a-zA-Z0-9]+\.[a-zA-Z0-9][email protected]\.com

+0

只是爲了增加;爲了成爲一個有效的電子郵件(它們不能以「。」開始或結束),必須在規範@Brad之外使用'+',雖然email正則表達式變得非常複雜,因爲有效的規範地址。 – Jordan 2011-05-02 19:35:45

+0

非常感謝!它按預期工作,我感謝你給我的定義。我會嘗試找出匹配下面的電話號碼字符串。 (111)111-1111 – Brad 2011-05-02 19:40:57

+0

對不起! – Brad 2011-05-02 20:13:18

0

假設的Unix風格,其中.是任意字符:.*\..*@gmail\.com

編輯:域中

+0

需要逃脫。在gmail.com(例如gmail \ .com) – mklauber 2011-05-02 19:31:23

+0

@mklauber,謝謝你的建設性評論! – Jordan 2011-05-02 19:33:37

0

你甚至都不需要正則表達式,因爲您的要求是非常具體的躲過了.。不知道您使用的是哪種語言,但大多數人會支持在@上進行拆分並檢查.。在蟒蛇:

name, _, domain = email.partition('@') 
if '.' in name and domain == 'gmail.com': 
    # valid 
0

你還沒有告訴我們您需要但是這個例子將適合大多數人的什麼樣的正則表達式的味道:

.*\..*@gmail.com 
相關問題