表达式如下:
([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX])
或
([1-9][0-9]{14})([0-9]{2}[0-9xX])?
释义:
首先,身份证号有15位或者18位之分;
第一种写法表示:[1-9]表示1-9数字中的任意一个,因为身份证号不能以0开头;[0-9]表示0-9中的任意一个;{14}表示前边表达式出现14次;即:第一位是[1-9]中的任意一个,之后是[0-9]{14}表示0-9共出现14次,从而组合成15位的身份证号。“|”表示或,因为是15位或者18位,18位的表示为第一位是[1-9]中任意一个,[0-9]{16}表示0-9中数字随机出现16个,[0-9xX]表示是0-9或x或X出现一次,由此组成18位身份证号。
第二种写法表示:[1-9][0-9]{14}表示产生一个第一位是1-9中随机一个数字的15位身份证号;([0-9]{2}[0-9xX])?表示产生0或1个3位数,其中0-9两位,0-9或x或X一位。
注:如有不知道符号意义的,请参见:
https://blog.csdn.net/guanmao4322/article/details/88204372