此正则表达式用于验证电子邮件地址,但不包括撇号(')的情况,这是电子邮件地址第一部分中的有效字符。 我试过自己,并使用我发现的一些例子,但它们不起作用。
^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
如何稍微修改它以支持'character(apostraphy)?
答案 0 :(得分:1)
根据电子邮件地址的文档,撇号可以出现在@
符号之前的任何位置,在您当前的正则表达式中是:
^([\w-\.]+)@
您应该能够将撇号添加到有效字符的括号中:
^([\w-\.']+)@
这将使整个正则表达式:
^([\w-\.']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
编辑(单引号中包含正则表达式)
如果您在带有单引号的字符串中使用此正则表达式,例如在带有$regex = '^([\w ...
的PHP中,则需要使用\'
转义正则表达式中的单引号:
^([\w-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
答案 1 :(得分:1)
您需要按如下方式更新第一部分:
^([\'\w-\.]+)