2012-11-09 117 views
1

这个正则表达式用于验证电子邮件地址,但它不包括apostrophy('),它是电子邮件地址的第一部分中的有效字符。 我已经尝试过自己并尝试使用一些我发现的例子,但它们不起作用。我想修改这个正则表达式来包含撇号

^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 

如何稍微修改它以支持'字符(apostraphy)?

^([\w-\.]+)@ 

你应该能够撇号添加到的有效括号:

+0

的可能重复[正则表达式查找和逃避撇号(http://stackoverflow.com/questions/4746460/regex -to-查找和逃避撇号) –

回答

1

每一个电子邮件地址的文件,撇号可以在@符号,这在当前的正则表达式是之前的任何地方出现人物:

^([\w-\.']+)@ 

这将使整个正则表达式:

^([\w-\.']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 

编辑(正则表达式包含在单引号)
如果你使用单引号,如PHP中$regex = '^([\w ...在字符串中这个表达式,你需要逃脱单引号中的正则表达式与\'

^([\w-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 
0

您需要更新的第一部分如下:

^([\'\w-\.]+)