一、正则表达式简介
正则表达式(Regular Expression,简称 Regex)是一种用于匹配字符串的强大工具。它允许我们定义一种模式,然后可以使用这个模式来检查字符串是否符合该模式,或者从字符串中提取符合模式的部分。
在 Java 中,正则表达式通过 java.util.regex
包来支持,主要包括两个类:
Pattern
:表示正则表达式的模式Matcher
:用于执行匹配操作,它包含了各种方法来检查字符串是否与模式匹配
二、中国手机号码格式规则
中国手机号码通常遵循以下规则:
- 以 1 开头
- 第二位是 3、4、5、6、7、8 或 9
- 总共 11 位数字
根据这些规则,我们可以构造出对应的正则表达式:^1[3-9]\d{9}$
三、Java 程序实现手机号码格式验证
下面是完整的 Java 程序代码,使用正则表达式来验证用户输入的手机号码是否符合中国手机号码格式:
import java.util.regex.Pattern;
public class PhoneValidator {
// 定义手机号码正则表达式
private static final String PHONE_REGEX = "^1[3-9]\\d{9}$";
/**
* 验证手机号码是否符合格式
* @param phone 要验证的手机号码
* @return 如果符合格式返回 true,否则返回 false
*/
public static boolean isValidPhone(String phone) {
// 使用 Pattern 类编译正则表达式
Pattern pattern = Pattern.compile(PHONE_REGEX);
// 使用 Matcher 类进行匹配操作
return pattern.matcher(phone).matches();}
public static void main(String[] args) {
// 测试手机号码
String[] testPhones = {"13812345678", "12345678901", "15987654321", "11111111111", "19876543210"};
for (String phone : testPhones) {if (isValidPhone(phone)) {System.out.println("手机号码" + phone + "格式正确");
} else {System.out.println("手机号码" + phone + "格式错误");
}
}
}
}
五、运行结果
运行上述程序,输出结果如下:
手机号码 13812345678 格式正确
手机号码 12345678901 格式错误
手机号码 15987654321 格式正确
手机号码 11111111111 格式错误
手机号码 19876543210 格式正确
正文完