正则表达式
正则表达式的概述
是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。
其实就是一种规则。有自己特殊的应用
其作用就是
比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,
这个限制长度的事情就是正则表达式做的
1 public static void main(String[] args) { 2 // 非正则表达式实现 3 System.out.println(checkQQ("012345")); 4 // 正则表达式实现 5 String regex = "[1-9]\d{4,14}"; 6 System.out.println("111111".matches(regex)); 7 } 8 9 /** 10 * 需求:校验qq号码 11 * 1、要求必须是5-15位数字 12 * 2、开头不能为0 13 * 3、必须都是数字 14 * 校验qq 15 * 1、明确返回值类型boolean 16 * 2、明确参数列表String qq 17 */ 18 19 public static boolean checkQQ(String qq) { 20 // 如果校验qq不符合要求就把flag设置为false,如果符合要求则直接返回 21 boolean flag = true; 22 if (qq.length() >= 5 && qq.length() <= 15) { 23 if (!qq.startsWith("0")) { 24 // 将字符串转换成字符数组 25 char[] arr = qq.toCharArray(); 26 for (int i = 0; i < arr.length; i++) { 27 char ch = arr[i]; 28 if (!(ch >= '0' && ch <= '9')) { 29 // 不是数字 30 flag = false; 31 break; 32 } 33 } 34 } else { 35 // 以0开头,不符合qq标准 36 flag = false; 37 } 38 } else { 39 // 长度不符合 40 flag = false; 41 } 42 return flag; 43 }
字符类:
[abc] a,b 或 c (简单类)
[^abc] 任何字符,除了 a,b,c(否定)
[a-zA-Z] a到 z 或 A 到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括
.任何字符
d 数字:[0-9]
D 非数字:[^0-9]
s 空白字符:[ xOBf ]
S 非空白字符:[^s]
w 单词字符:[a-zA-Z_0-9]
W 非单词字符:[^w]
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好n 次
X{n,} X,至少n 次
X{n,m} X,至少 n 次,但是不超过 m 次