电子邮件的正则表达式,10到30个字符

时间:2018-04-14 00:39:13

标签: regex email expression

我必须为电子邮件制作正则表达式。 允许在@符号之前只有字母或数字,可选地只包含不能在开头的点。在@符号之后,它只允许包含字母或数字,只有一个点,在点后至少包含2个字符。

这是我的表达

/([a-zA-Z\d*])+(\.?)([a-zA-Z\d*])*@{1}([a-zA-z\d*])+(\.){1}([a-zA-Z\d*]){2,}/

整个电子邮件应该有10到30个字符,我不知道该怎么做。

由于

3 个答案:

答案 0 :(得分:1)

实际上,您可以为模式添加前瞻和量词,以匹配10到30个字符:(?=^.{10,30}$)

然后,您的模式如下所示:

(?=^.{10,30}$)([a-zA-Z\d*])+(\.?)([a-zA-Z\d*])*@{1}([a-zA-z\d*])+(\.){1}([a-zA-Z\d*]){2,}

Demo

答案 1 :(得分:0)

一系列允许重复的语法是{n,m}。你写了{1}意思是“一个”,这是毫无意义的。 {10,30}是您要查找的范围。

另外,知道“字母”的转义码。 \w是一个“单词字符”,与[a-zA-Z0-9_]相同。为什么角色范围内有'*'?

所以问题是你的作品最终会有不同的长度,完成后需要检查总计对吧?

在Perl中,您可以将代码包含为断言。因此,请将(?{ length($&) <= 30 })作为最终断言。

答案 2 :(得分:0)

(?=^[A-Za-z0-9])

https://regex101.com/r/cBACF2/10

应该在10到30之间[A-Za-z0-9\.] 从字母&amp;开始数字[A-Za-z]{2,} 包含字母和数字和点chgrp -R tomcat /usr/local/apache-tomcat-9.0.6 chown -R tomcat /usr/local/apache-tomcat-9.0.6 chmod -R 755 /usr/local/apache-tomcat-9.0.6 在最后一个点{{1}}

之后至少两个字母