正则表达式规则:
1.元字符
2.量词
一、元字符(规定好有特殊意义的字符)
\\ 表示反斜线
\t 表示制表符(Tab)
\n 换行
[123] 表示1或2或3
[^456] 表示除了1、2、3之外任意字符
[a-zA-Z0-9] 表示大小写字母、数字组成
\d 表示数字
\w 表示字母、数字、下划线
\W 表示非字母、数字、下划线
\s 表示所有空白字符(换行、空格等)
\S 表示所有非空白字符
^ 表示开头
$ 表示结尾
二、量词
数量表示
x* 可能出现0\1\多次
x? 可能出现0\1次
x{n} 指定出现n次
x{n,m} 指定出现n-m次
x{n,} 指定出现n次以上
逻辑运算符表示
X|Y X或Y
XY XY一起
判断输入的数字是否是18位的身份证的信息
public void method(String str) {
str.matches("^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])([012][1-9]|10|20|30|31)\\d{3}[0-9xX]$");
}