我必须为电子邮件制作正则表达式。 允许在@符号之前只有字母或数字,可选地只包含不能在开头的点。在@符号之后,它只允许包含字母或数字,只有一个点,在点后至少包含2个字符。
这是我的表达
/([a-zA-Z\d*])+(\.?)([a-zA-Z\d*])*@{1}([a-zA-z\d*])+(\.){1}([a-zA-Z\d*]){2,}/
整个电子邮件应该有10到30个字符,我不知道该怎么做。
由于
答案 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,}
答案 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}}