我正在使用以下正则表达式验证电子邮件,例如“email1@domain.com”:
^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$
现在我需要验证带有空格的电子邮件以允许多个电子邮件,例如:“email1@domain.com email2@domain.com email3@domain.com email4@domain.com”
有什么改进或帮助可以做到这一点吗? 这是针对 Java 的。 注意:我需要一个正则表达式,因为我使用 JSON SCHEMA 验证来验证 JSON 字段,我无法验证每封电子邮件。
^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$
最佳答案
嗯,一种方法是将 ^
替换为 (?:^|[ ])
并将 $
替换为 (? =$|[ ])
然后,如果您想“捕获”电子邮件,而不仅仅是验证它们,请将原始模式放入捕获组中(即 (?:^|[ ])(YourOriginalPatter )(?=$|[ ])
).
这是使用您的模式的示例:
(?:^|[ ])([a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7})(?=$|[ ])
<强> Demo 。
关于java - 正则表达式中的电子邮件之间允许有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047435/