我编写了这个正则表达式来验证电子邮件地址。我必须遵守的规则是:
收件人名称最多可包含64个字符,包括:
- 英语中的大写和小写字母(A-Z,A-Z(
- 从0到9的数字
- 特殊字符
- 特殊字符不能作为电子邮件地址中的第一个或最后一个字符出现,也不能连续出现两次或多次
[a-zA-z0-9]{1}?![a-zA-z0-9]?[a-zA-z0-9]{1,63}@[a-zA-z0-9]+.[a-zA-z0-9]+
我显然是雷格斯的新手。我这行的意思是,第一个字符必须是[a-zA-z0-9]
中的一个,然后,可以通过否定[a-zA-z0-9]
来使用任何特殊字符,然后在@之前再次使用[a-zA-z0-9]
。
请帮助我实现上述期望。
Tnx
尝试https://regex101.com/测试正则表达式并阅读解释。
我认为这将满足您的要求:
w(?:W(?=w)|w){0,63}@w+.w+
- 匹配单个单词字符([a-zA-Z0-9_](
- 最多匹配63次(单个非单词字符立即与单词字符(即正向前瞻(或单个单词字符匹配(
- 匹配@符号
- 匹配任意数量的单词字符,然后匹配句点,然后再匹配任意数量单词字符
这里唯一的问题是下划线,出于某种原因,它也被认为是一个单词字符。如果与您有关,请用[a-zA-Z0-9]
替换每次出现的w
,用[W_]
替换任何出现的W
,或者用您要接受的所有特殊符号的列表。