我必须创建一个正则表达式来识别电子邮件。这是到目前为止的样子:
[A-Za-z0-9]+([._-]*[A-Za-z0-9]+)*[@]+[A-Za-z0-9]+([._-]*[A-Za-z0-9]+)*(.com)*
我想用此正则表达式来识别一封电子邮件。问题是电子邮件不能以任何非字母数字符号开头或结尾。因此:
[email protected] or [email protected]_ = invalid
ilike.stack@gmail = valid
但是当我运行Lex程序时,上面的前两封电子邮件被认为是有效的,我不知道该如何更改。
相当好!
也许,
^[A-Za-z0-9][A-Za-z0-9._-]*@[A-Za-z0-9]+\.[A-Za-z]{2,6}(?:\.[A-Za-z0-9]{2,6})?$
可能会更近一些。