用于 RFC 电子邮件合规验证的正则表达式
本文关键字:验证 正则表达式 RFC 电子邮件 用于 | 更新日期: 2023-09-27 18:34:51
根据本文(几乎在文章末尾(,使用以下正则表达式将验证 RFC 5322 下的任何电子邮件
但它根本不起作用。请问有人可以检查一下这个表达式中的错误是什么吗?
A(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}'z)
(?=[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,64}@)
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
@ (?:(?=[a-z0-9-]{1,63}'.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+
(?=[a-z0-9-]{1,63}'z)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
我尝试使用 regex101.com 或其他测试人员,但我无法使其工作。
使用 WinMerge* 比较您的版本和文章中的版本。区别应该很明显:)
你从一开始就错过了一个'
,从最后错过了一个'z
。
'A(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}'z)
(?=[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,64}@)
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
@ (?:(?=[a-z0-9-]{1,63}'.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+
(?=[a-z0-9-]{1,63}'z)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'z
*其他比较工具可用