2014-02-27 39 views
0

我正在使用正則表達式來識別字符串是否是有效的電子郵件地址。模式:使用Regex刪除電子郵件地址後的尾部字符

private static final String EMAIL_PATTERN = 
    "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" 
    + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 

問題是,如果此正則表達式模式包含尾隨字符,則無法正確識別電子郵件地址。例如:「[email protected]」。或「[email protected],」

你知道,能考慮到這一點正則表達式模式的?

+1

好,'FOO @ bar.com,'(注意後面的逗號)_is_一個無效的電子郵件地址... – fge

+0

此正則表達式產生大量的假陰性,請參閱:HTTP://en.wikipedia。組織/維基/ EMAIL_ADDRESS#Valid_email_addresses – Toto

+0

也來看看這個問題:https://stackoverflow.com/questions/600733/using-java-to-find-substring-of-a-bigger-string-using-regular-表達 – gdiazc

回答

1

$跡象之前,用[.,]?或任何其他標點符號(即[]內),如果你想在那裏克服這一點。

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

謝謝Sabuj,完美的作品。 –

相關問題