正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性
package Regex; public class Demo1 { public static void main(String[] args) { String qq = "1234567890"; // System.out.println(checkQQ(qq)); System.out.println(qq.matches("[1-9]\\d{5,19}")); //校验用户名 //校验密码 //校验身份证号 } public static boolean checkQQ(String qq) { //规则:6-20位 第一位不为0,全是数字 int len = qq.length(); //if首先进行异常情况判断 //6-20 if (len < 6 || len > 20) { return false; } //0开头 if (qq.startsWith("0")) { return false; } for (int i = 0; i < qq.length(); i++) { char c = qq.charAt(i); if (c < '0' || c > '9') { return false; } } return true; } }
正则表达式的作用
校验字符串是否满足规则
在一段文本中查找满足要求的内容
字符类(只匹配一个字符)
[abc] 只能是a,b,c,而且只能出现一个
[^abc] 除了a,b,c,之外的任何字符
[a-zA-Z] 范围之内都可以
[a-d[m-p]] a-d或者m-p
[a-z&&[def]] a-z和def的交集 为d,e,f
[a-z&&[^bc]] a-z和非bc的交集。等同于[ad-z]
[a-z&&[^m-p]] a-z和非m-p的交集
预定义字符(只匹配一个字符)
. 任何字符(点)
\d 一个数字:[0-9]
\D 非数字:[^0-9]
\s 一个空白字符:[\t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 英文,数字,下划线:[a-zA-Z_0-9]
\W 一个非单词字符:[^\w]
数量词
X? X,一次或者0次
X* X,零次或者多次
X+ X,一次或者多次
X{n} X,正好n次
X{n,} X,至少n次
X{n,m} X,至少n次至多m次