Welcome

首页 / 正则表达式 / 最严谨的校验email地址的正则表达式及各种语言对应版

通用
复制代码 代码如下:
(?:[a-z0-9!#$%&"*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&"*+/=?^_`{|}~-]+)*|"(?:[x01-x08x0bx0cx0e-x1fx21x23-x5bx5d-x7f]|\[x01-x09x0bx0cx0e-x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[x01-x08x0bx0cx0e-x1fx21-x5ax53-x7f]|\[x01-x09x0bx0cx0e-x7f])+)])

Python
r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$)"
Javascript
复制代码 代码如下:
/^[-a-z0-9~!$%^&*_=+}{"?]+(.[-a-z0-9~!$%^&*_=+}{"?]+)*@([a-z0-9_][-a-z0-9_]*(.[-a-z0-9_]+)*.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(:[0-9]{1,5})?$/i
PHP复制代码 代码如下:
/^(?!(?:(?:x22?x5C[x00-x7E]x22?)|(?:x22?[^x5Cx22]x22?)){255,})(?!(?:(?:x22?x5C[x00-x7E]x22?)|(?:x22?[^x5Cx22]x22?)){65,}@)(?:(?:[x21x23-x27x2Ax2Bx2Dx2F-x39x3Dx3Fx5E-x7E]+)|(?:x22(?:[x01-x08x0Bx0Cx0E-x1Fx21x23-x5Bx5D-x7F]|(?:x5C[x00-x7F]))*x22))(?:.(?:(?:[x21x23-x27x2Ax2Bx2Dx2F-x39x3Dx3Fx5E-x7E]+)|(?:x22(?:[x01-x08x0Bx0Cx0E-x1Fx21x23-x5Bx5D-x7F]|(?:x5C[x00-x7F]))*x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))]))$/iD
Perl / Ruby
(?:(?:
)?[ 	])*(?:(?:(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	] )+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?: 
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:( ?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*))*@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00- 31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)* ](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+ (?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?: (?:
)?[ 	])*))*|(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+| |(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
) ?[ 	])*)*<(?:(?:
)?[ 	])*(?:@(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?: r
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
) ?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	] )*))*(?:,@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])* )(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	] )+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*) *:(?:(?:
)?[ 	])*)?(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+ ||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
 
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?: 
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	 ]))*"(?:(?:
)?[ 	])*))*@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31 ]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*]( ?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(? :(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(? :
)?[ 	])*))*>(?:(?:
)?[ 	])*)|(?:[^()<>@,;:\".[] 00-31]+(?:(? :(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)? [ 	]))*"(?:(?:
)?[ 	])*)*:(?:(?:
)?[ 	])*(?:(?:(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]| \.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<> @,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|" (?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*))*@(?:(?:
)?[ 	] )*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\ ".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(? :[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[ ]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*|(?:[^()<>@,;:\".[] 00- 31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\.|( ?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)*<(?:(?:
)?[ 	])*(?:@(?:[^()<>@,; :\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([ ^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\" .[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[ ]
\]|\.)*](?:(?:
)?[ 	])*))*(?:,@(?:(?:
)?[ 	])*(?:[^()<>@,;:\". [] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[] r\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|[([^[]
\] |\.)*](?:(?:
)?[ 	])*))*)*:(?:(?:
)?[ 	])*)?(?:[^()<>@,;:\".[]  00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(?:[^"
\]|\ .|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[^()<>@, ;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[]]))|"(? :[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*))*@(?:(?:
)?[ 	])* (?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\". []]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	])*(?:[ ^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[] ]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*>(?:(?:
)?[ 	])*)(?:,s*( ?:(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\ ".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)(?:.(?:( ?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[ ["()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	 ])*))*@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	 ])+||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(? :.(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+| |(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*|(?: [^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\".[ ]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)*<(?:(?:
) ?[ 	])*(?:@(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[[" ()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
) ?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<> @,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*(?:,@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@, ;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?:.(?:(?:
)?[ 	] )*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\ ".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*)*:(?:(?:
)?[ 	])*)? (?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[["()<>@,;:\". []]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	])*)(?:.(?:(?: 
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+||(?=[[ "()<>@,;:\".[]]))|"(?:[^"
\]|\.|(?:(?:
)?[ 	]))*"(?:(?:
)?[ 	]) *))*@(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	]) +||(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*)(?: .(?:(?:
)?[ 	])*(?:[^()<>@,;:\".[] 00-31]+(?:(?:(?:
)?[ 	])+| |(?=[["()<>@,;:\".[]]))|[([^[]
\]|\.)*](?:(?:
)?[ 	])*))*>(?:( ?:
)?[ 	])*))*)?;s*)
Perl 5.10 or newer
/(?(DEFINE)(?<address> (?&mailbox) | (?&group))(?<mailbox> (?&name_addr) | (?&addr_spec))(?<name_addr> (?&display_name)? (?&angle_addr))(?<angle_addr> (?&CFWS)? < (?&addr_spec) > (?&CFWS)?)(?<group> (?&display_name) : (?:(?&mailbox_list) | (?&CFWS))? ;(?&CFWS)?)(?<display_name> (?&phrase))(?<mailbox_list> (?&mailbox) (?: , (?&mailbox))*)(?<addr_spec> (?&local_part) @ (?&domain))(?<local_part> (?&dot_atom) | (?"ed_string))(?<domain> (?&dot_atom) | (?&domain_literal))(?<domain_literal> (?&CFWS)? [ (?: (?&FWS)? (?&dcontent))* (?&FWS)?] (?&CFWS)?)(?<dcontent> (?&dtext) | (?"ed_pair))(?<dtext> (?&NO_WS_CTL) | [x21-x5ax5e-x7e])(?<atext> (?&ALPHA) | (?&DIGIT) | [!#$%&"*+-/=?^_`{|}~])(?<atom> (?&CFWS)? (?&atext)+ (?&CFWS)?)(?<dot_atom> (?&CFWS)? (?&dot_atom_text) (?&CFWS)?)(?<dot_atom_text> (?&atext)+ (?: . (?&atext)+)*)(?<text> [x01-x09x0bx0cx0e-x7f])(?<quoted_pair> \ (?&text))(?<qtext> (?&NO_WS_CTL) | [x21x23-x5bx5d-x7e])(?<qcontent> (?&qtext) | (?"ed_pair))(?<quoted_string> (?&CFWS)? (?&DQUOTE) (?:(?&FWS)? (?&qcontent))*(?&FWS)? (?&DQUOTE) (?&CFWS)?)(?<word> (?&atom) | (?"ed_string))(?<phrase> (?&word)+)# Folding white space(?<FWS> (?: (?&WSP)* (?&CRLF))? (?&WSP)+)(?<ctext> (?&NO_WS_CTL) | [x21-x27x2a-x5bx5d-x7e])(?<ccontent> (?&ctext) | (?"ed_pair) | (?&comment))(?<comment> ( (?: (?&FWS)? (?&ccontent))* (?&FWS)? ) )(?<CFWS> (?: (?&FWS)? (?&comment))*(?: (?:(?&FWS)? (?&comment)) | (?&FWS)))# No whitespace control(?<NO_WS_CTL> [x01-x08x0bx0cx0e-x1fx7f])(?<ALPHA> [A-Za-z])(?<DIGIT> [0-9])(?<CRLF> x0d x0a)(?<DQUOTE> ")(?<WSP> [x20x09]))(?&address)/x
Ruby (simpler version)
/A([w+-].?)+@[a-zd-]+(.[a-z]+)*.[a-z]+z/i
.NET
^w+([-+."]w+)*@w+([-.]w+)*.w+([-.]w+)*$