下面的正則表達式模式(PHP)是爲了驗證任何電子郵件地址:PHP正則表達式:查找漏洞在電子郵件驗證模式
^[\w.-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,6}$
它說:「比賽至少一個(或多個)的上 - 和/或小寫字母,和/或句點,下劃線和/或破折號後跟一個且只有一個@後跟至少一個(或多個)大寫和/或小寫字母,和/或週期,和/或強調,然後是,並且只有一個週期,然後是兩到六個大寫和/或小寫字母。
這似乎與我能想到的任何電子郵件地址匹配。儘管如此,這種讓它正確的感覺可能是欺騙性的。有人需要知識淵博,請指出一種我不知道的明顯或不太明顯的漏洞,這種漏洞會導致它不按照它的意圖執行電子郵件驗證?
(要預見到可能的反應,我知道,filter_var()函數提供了更強大的解決方案,但我在這種情況下,正則表達式特別感興趣)
注:這是關於PHP正則表達式的理論問題,而不是關於驗證電子郵件的實際問題。我只想確定在這種情況下正則表達式的合理可能性的侷限性。
預先感謝您!
例如,電子郵件可能包含加號('+')符號。你已經看過[RFC-complicant regex](http://ex-parrot.com/~pdw/Mail-RFC822-Address.html),不是嗎?另見[這個問題](http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – galymzhan 2013-02-14 03:55:25
我做到了。我在問這個問題,因爲我想看到一個實際的電子郵件地址的例子,這種模式不會匹配。 – 2013-02-14 04:01:28