正则表达式适配身份证规则
时间: 2023-07-29 20:10:13 浏览: 90
身份证号码是一个固定格式的字符串,可以使用正则表达式来匹配身份证号码的规则。下面是一个可用的身份证号码正则表达式:
```
^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$
```
这个正则表达式的含义如下:
- `^` 表示字符串的开始;
- `[1-9]\d{5}` 表示前六位数字,第一位不能是 0;
- `(19|20)\d{2}` 表示出生年份,必须是 19 或 20 开头的 4 位数字;
- `(0[1-9]|1[0-2])` 表示出生月份,必须是 01 到 12 的数字;
- `(0[1-9]|[12]\d|3[01])` 表示出生日期,必须是 01 到 31 的数字;
- `\d{3}` 表示顺序码,可以是任意 3 位数字;
- `([0-9]|X)` 表示校验码,可以是 0 到 9 的数字或字母 X;
- `$` 表示字符串的结束。
使用这个正则表达式可以检查一个字符串是否符合身份证号码的格式,例如:
```java
String regex = "^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}([0-9]|X)$";
String idNumber = "440106199001011234";
if (idNumber.matches(regex)) {
System.out.println("身份证号码格式正确");
} else {
System.out.println("身份证号码格式错误");
}
```
这个例子中,使用 `matches()` 方法检查 `idNumber` 是否符合身份证号码的格式,如果符合则输出 `身份证号码格式正确`,否则输出 `身份证号码格式错误`。
阅读全文