【发布时间】:2019-12-19 17:22:17
【问题描述】:
我需要编写一个正则表达式来接受以分号分隔的多个电子邮件 ID。 在任何特定的电子邮件 ID 之后,用户可能会误按空格键或输入键,我们的正则表达式也应该接受。
我现在的表达是:
^(([a-zA-Z0-9_\-\.])+@(domain1|domain2)\.(com){1,25}(($)|(;+ *\n* *)|(\n*;+)|( *;+ *\n*)|(;+\n* *)||( *\n* *;+ *)|(\n*;+\n*)|( *;+ *$)|( *;+ *(?=[a-zA-Z0-9_\-\.]))))+$
在我的情况下,上面的正则表达式确实效率不高。作为初学者,我参考了一些解决方案,并根据我的理解将它们组合起来。
预期输出:
应该匹配:abc@domain1.comspace>space>;enter>abc@domain1.comspace>enter>; abc@domain1.com
(空格、回车和分号的顺序可以不同)。 不应接受其他特殊字符。
在这种情况下有人可以帮助我吗?
【问题讨论】:
-
出于好奇,您使用的是什么语言?
-
验证单个电子邮件的正则表达式可能不是您所需要的。使用
\s*;[\s;]*拆分并使用您的编程语言中的专用方法验证每个块。或者如果没有正则表达式。如果您的电子邮件模式应该只匹配非常具体的电子邮件,例如匹配^[a-zA-Z0-9_.-]+@(?:domain1|domain2)\.com$,您可以考虑使用^[a-zA-Z0-9_.-]+@(?:domain1|domain2)\.com(?:\s*;[;\s]*[a-zA-Z0-9_.-]+@(?:domain1|domain2)\.com)*$ -
@Zlatko 我正在使用 reactjs,在填写表单时,用户应在文本框中添加电子邮件 ID,以分号分隔,