(...)
您的正则表达式(除了以开头的分组^[-a-zA-Z0-9'_+\/]+
,这意味着开头^
后面跟着一个或多个+
允许的字符[...]
。在这种情况下,它们是连字符、小写/大写字母、数字、撇号、下划线、加号或前斜线。
第二部分是你需要改变的。在您的正则表达式中它是([-.'_+\/][-a-zA-Z0-9'_+\/]+)*
,这是一种可能多次出现的模式,但也不必*
. 该模式有两部分: 一个允许的字符:连字符、句点/点、撇号、下划线、加号或前斜线;后跟一个或多个连字符、小写/大写字母、数字、撇号、下划线、加号或前斜线。
如果您从模式的第一部分删除句点/点,则不允许使用此字符。但是因为您希望允许句点/点,但不能使用相同的字符集,所以必须定义替代模式。
如果第二部分将从您([-.'_+\/][-a-zA-Z0-9'_+\/]+)*
的模式更改为具有 period/dot: 替代方案的模式([-'_+\/][-a-zA-Z0-9'_+\/]+|\.[a-zA-Z0-9'+\/]+)*
,那么最终的正则表达式将满足您的需求。如您所见,|\.[a-zA-Z0-9'+\/]+
已添加,内容为:或|
模式单个句点/点后跟一个或多个小写/大写字母、数字、撇号、加号或前斜线。
最终的正则表达式是:
^([-a-zA-Z0-9'_+\/]+([-'_+\/][-a-zA-Z0-9'_+\/]+|\.[a-zA-Z0-9'+\/]+)*)@(([a-zA-Z0-9]+((\.|[-]{1,2})[a-zA-Z0-9]+)*)\.[a-zA-Z]{2,6})$