2014-01-17 50 views

回答

-1

試試這個:

^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)* @[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;

希望這有助於你

或者使用下面的類

org.apache.commons.validator.routines.EmailValidator 

使用下面的方法

isValid(String email)返回布爾

+1

不匹配'ABC @ com'這是一個有效的地址,請參閱:HTTP:/ /en.wikipedia.org/wiki/Email_address#Valid_email_addresses – Toto

+2

甚至不符合OP要求'bob at gmail dot com'的內容。 – devnull

3

更改此:

[at|@|(at)] 

到:

(?:at|@|\(at\)) 

[dot|\\.|dt] 

(?:dot|\\.|dt) 

[...]character class(?:...)non capture group

整個正則表達式爲:

([a-zA-Z0-9.]+)\\s*(?:at|@|\(at\))\\s*(\\w+)\\s*(?:do?t|\\.)\\s*(\\w+{1,3}) 

如果你想匹配的子域:

([a-zA-Z0-9.]+)\\s*(?:at|@|\(at\))\\s*(?:\\w+\\s*(?:do?t|\\.)\\s*)+(\\w+{1,3}) 
+1

並且'(?:dot | \\。| dt)'到'(?:do?t | \\。)':p –

+0

@ Jonny5:沒錯。 – Toto

+0

非常感謝...作爲跟進 我已經寫了上面的RegEx來獲取電子郵件地址。 這成功地拿起gmail點鮑勃來 但是,它並沒有在GM點的Gmail點com回暖,鮑勃(攝像以下電子郵件存在[email protected]) 此外,它也產生了一些如果文字中出現「at」字樣,則爲誤報。例如字符串「運行時運行。它」將作爲電子郵件返回[email protected] 有關如何捕獲電子郵件的第二個變體並避免捕獲[email protected]的任何建議? – user3206133

相關問題