如何使用 Java 在列表中匹配电话号码



问题说明

如何在列表中匹配电话号码?

解决方案

以下示例通过使用 phone.matches(phoneNumberPattern) 方法,展示如何将列表中的电话号码与一个粒子模式匹配。

public class MatchPhoneNumber {
   public static void main(String args[]) {
      isPhoneValid("1-999-585-4009");
      isPhoneValid("999-585-4009");
      isPhoneValid("1-585-4009");
      isPhoneValid("585-4009");
      isPhoneValid("1.999-585-4009");
      isPhoneValid("999 585-4009");
      isPhoneValid("1 585 4009");
      isPhoneValid("111-Java2s");
   }
   public static boolean isPhoneValid(String phone) {
      boolean retval = false;
      String phoneNumberPattern = "(\\d-)?(\\d{3}-)?\\d{3}-\\d{4}";
      retval = phone.matches(phoneNumberPattern);
      String msg = "NO MATCH: pattern:" + phone + "\r\n regex: " + phoneNumberPattern;
      
      if (retval) {
         msg = " MATCH: pattern:" + phone + "\r\n regex: " + phoneNumberPattern;
      }
      System.out.println(msg + "\r\n");
      return retval;
   }
}

结果

以上代码示例将产生以下结果。

MATCH: pattern:1-999-585-4009
	    regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
MATCH: pattern:999-585-4009
	    regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
MATCH: pattern:1-585-4009
	    regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
NOMATCH: pattern:1.999-585-4009
 regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
NOMATCH: pattern:999 585-4009
 regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
NOMATCH: pattern:1 585 4009
 regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}
NOMATCH: pattern:111-Java2s
 regex: (\\d-)?(\\d{3}-)?\\d{3}-\\d{4}

以下为验证电话号码的一个示例。

public class Main { 
   private static boolean isValid(String s) {
      String regex = "\\d{2}-\\d{4}-\\d{6}"; 
      return s.matches(regex);
   } 
   public static void main(String[] args) {
      System.out.println(isValid("91-9652-018244"));
   } 
}

以上代码示例将产生以下结果。

true
java_regular_exp.htm
广告
© . All rights reserved.