Java正则表达式程序,用于验证包含空白字段的电子邮件也有效

以下正则表达式匹配给定的电子邮件ID,包括空白输入-

^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})?$

哪里,

  • ^匹配句子的开头。

  • [a-zA-Z0-9 ._%+-]匹配英文字母(两种情况),数字,@符号前的“ +”,“ _”,“。”,“”和“-”中的一个字符。

  • +表示重复上述字符集一次或多次。

  • @匹配自己

  • [a-zA-Z0-9.-]匹配英语字母(两种情况)中的一个字符,数字“。”。和@符号后的“-”

  • \。[a-zA-Z] {2,6}电子邮件域后的“ 2”至2个字母。

  • $表示句子的结尾

例子1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleTest {
   public static void main( String args[] ) {
      String regex = "^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6})?$";
      //读取用户输入
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your name: ");
      String name = sc.nextLine();
      System.out.println("Enter your e-mail: ");
      String e_mail = sc.nextLine();
      System.out.println("Enter your age: ");
      int age = sc.nextInt();
      //实例化Pattern类
      Pattern pattern = Pattern.compile(regex);
      //实例化Matcher类
      Matcher matcher = pattern.matcher(e_mail);
      //验证是否发生匹配
      if(matcher.find()) {
         System.out.println("e-mail value accepted");
      } else {
         System.out.println("e-mail not value accepted");
      }
   }
}

输出1

Enter your name:
krishna
Enter your e-mail:
Enter your age:
20
e-mail value accepted

输出2

Enter your name:
Rajeev
Enter your e-mail:
rajeev.123@gmail.com
Enter your age:
25
e-mail value accepted

例子2

import java.util.Scanner;
public class Example {
   public static void main(String args[]) {
      //从用户读取字符串
      System.out.println("Enter email address: ");
      Scanner sc = new Scanner(System.in);
      String e_mail = sc.nextLine();
      //正则表达式
      String regex = "^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6})?$";
      boolean result = e_mail.matches(regex);
      if(result) {
         System.out.println("Valid match");
      } else {
         System.out.println("Invalid match");
      }
   }
}

输出1

Enter email address:
rajeev.123@gmail.com
Valid match

输出2

Enter email address:
Valid match