Dot-Net

來自電子郵件地址的域的正則表達式

  • March 19, 2020

誰能幫我一個正則表達式,它會在@符號之後返回電子郵件地址的結尾部分?我是正則表達式的新手,但想學習如何使用它而不是編寫低效的 .Net 字元串函式!

例如,對於“test@example.com”的輸入,我需要“example.com”的輸出。

乾杯! 蒂姆

這是一個通用的電子郵件匹配器:

[a-zA-Z][\w\.-]*[a-zA-Z0-9]@([a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])

請注意,它只擷取域組;如果您使用以下內容,您還可以擷取繼續進行的部分@

([a-zA-Z][\w\.-]*[a-zA-Z0-9])@([a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])

我不確定這是否符合 RFC 2822,但我對此表示懷疑。

哇,這裡的所有答案都不完全正確。

一個電子郵件地址可以有任意數量的“@”,而最後一個不一定是域之前的那個:(

例如,這是一個有效的電子郵件地址:

user@example.com(i'm a comment (with an @))

不過,您必須非常刻薄才能將其設為您的電子郵件地址。

所以首先,解析出最後的任何評論。

然後

int atIndex = emailAddress.LastIndexOf("@");
String domainPart = emailAddress.Substring(atIndex + 1);

引用自:https://stackoverflow.com/questions/1487789