在java中使用regex验证电子邮件

时间:2017-07-22 19:09:42

标签: java regex

我正在尝试使用正则表达式验证电子邮件格式的某个子集,但到目前为止我所尝试的并不是很有用。这是我的正则表达式(Java):

boolean x = l.matches(
    "^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@\"\n" +"+ \"[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$"
);

这是字符串必须匹配的条件:

  • 邮件域名来自列表:
      
        
    • www.fightclub.uk
    •   
    • www.fightclub.lk
    •   
    • www.fightclub.sa
    •   
    • www.fightclub.cc
    •   
    • www.fightclub.jp
    •   
    • www.fightclub.se
    •   
    • www.fightclub.xy
    •   
    • www.fightclub.gi
    •   
    • www.fightclub.rl
    •   
    • www.fightclub.ss
    •   
  • 用户名有3到6个字符(只有小写的英文字母和数字)

的示例:

sonia6@fightclub.comvalid

am@fightclub2.lkinvalid

1 个答案:

答案 0 :(得分:2)

您可以使用:

^[a-z0-9]{3,6}@fightclub\.(?:uk|lk|sa|cc|jp|se|xy|gi|rl|ss)$
  1. ^表示字符串的开头
  2. [a-z0-9]{3,6}小写字母或长度为3-6个字符的数字
  3. 后跟@fightclub
  4. 后跟一段时间\.
  5. 后跟域列表(?:表示它是非捕获组。您的所有域名扩展都列在此处。
  6. $表示字符串结束
  7. DEMO:https://regex101.com/r/rYYXYA/1