代码如下:```String idNumberRegex = \"^[1-9]\\\d{5}(19|20)\\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\\d|3[01])\\\d{3}[0-9Xx]$\";```这是用来匹配中国大陆公民身份证号码的正则表达式,其中:- `^` 匹配字符串的开始位置。- `[1-9]` 匹配第一位,取值为 1-...
Java-18位身份证号的正则表达式。帮忙拆一下代码。
自问自答?2015-07-07
^匹配字符串的开始
[1-9]第1位:1-9
\d{5}第2-6位:0-9
[1-9]第7位:1-9
\d{3}第8-10位:0-9
((0\d)|(1[0-2])):
第11-12位:(00-09)或(10-12)
(([0|1|2]\d)|3[0-1])
第13-14位:(00-29)或(30-31)
\d{3}第15-17位:0-9
([0-9]|X)
第18位:0-9或X
$匹配字符串的结束2015-07-07
代码如下:```String idNumberRegex = \"^[1-9]\\\\d{5}(19|20)\\\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\\\d|3[01])\\\\d{3}[0-9Xx]$\";```这是用来匹配中国大陆公民身份证号码的正则表达式,其中:- `^` 匹配字符串的开始位置。- `[1-9]` 匹配第一位,取值为 1-9。- `\\\\d{5}` 匹配前六位,也就是地区码,由 6 位数字组成。- `(19|20)\\\\d{2}` 匹配出生年份,取值为 1900-2099 年。- `(0[1-9]|1[012])` 匹配出生月份,取值为 01-12 月。- `(0[1-9]|[12]\\\\d|3[01])` 匹配出生日期,取值为 01-31 日。- `\\\\d{3}` 匹配后三位,也就是顺序码,由 3 位数字组成。表示出生日期同一天出生的人填不同的数字,号码使用 000。- `[0-9Xx]` 匹配最后一位,取值为 0-9, X, x。其中 X 表示为 10,x 表示为 10 次方。其中正则表达式中出现的 `\\\\` 是为了转义 `\\`,因为 `\\` 在 Java 中要用 `\\\\` 表示。2023-05-19