所以这将是电子邮件地址的正则表达式。 用户名:大写和小写字母,数字,下划线和点
^[A-Za-z0-9._]+
然后是@和domain:大写字母,小写字母和数字
@[A-Za-z0-9]+
然后是点和TLD:至少2个字符(字母和数字),最多可以有一个点。 我以前都是至少2个字符,最多一个点:
([A-Za-z0-9]{2,}|[.]{0,1})
完整的正则表达式如下:
regex reg ("^[A-Za-z0-9._]+@[A-Za-z0-9]+\\.([A-Za-z0-9]{2,}|[.]{0,1})$");
但是最大一点规则不起作用。 当我输入zohal@gmail.df.g(当然不是real)时,它给出了false。 不过,它在zohal@gmail.com等其他情况下也能工作。
您可以使用
regex reg(R"(^[A-Za-z0-9._]+@[A-Za-z0-9]+(?:\.[A-Za-z0-9]+)+$)")
请参阅regex演示
详细信息
^
-字符串开始[a-za-z0-9._]+
-1个或多个字母,数字,.
或_
@
-@
字符[A-Za-z0-9]+
-1个或多个字母或数字(?:\.[A-Za-z0-9]+)+
-出现1个或多个点,然后出现1个或多个字母或数字$
-字符串的结尾位置。由于在@
后面有两个+
量化模式,因此您不需要显式的(?=(?:[^A-Za-z0-9]*[A-Za-z0-9]){2})
前瞻来要求至少两个字母或数字。