有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java允许在regex中的电子邮件之间使用空格

例如,我正在验证电子邮件“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模式验证来验证JSON字段,我无法验证每封电子邮件的电子邮件

^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$

共 (2) 个答案

  1. # 1 楼答案

    另一种方法是,你只需要用一个捕获组重复完整的模式

    ^(([wW]{3}.)*[a-zA-Z0-9_+&*-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,7} *){1,}$
    
  2. # 2 楼答案

    好的,一种方法是用(?:^|[ ])替换^,用(?=$|[ ])替换$,然后如果你想“捕获”电子邮件,而不仅仅是验证它们(即(?:^|[ ])(YourOriginalPatter)(?=$|[ ])),就把你的原始模式放在捕获组中

    下面是一个使用您的模式的示例:

    (?:^|[ ])([a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7})(?=$|[ ])
    

    Demo