A : 正则表达式
- 是指一个用来描述或者匹配一系列符合某个语法规则的字符串.就是一种描述规则
B : 案例演示 - 需求 : 校验QQ号码
1: 要求必须是5-15位数字
2: 0不能开头
3: 必须都是数字
String regex = "[1-9]\\d{4,14}"
// String 中有一个方法 用来检测正则的
"1741474467".matches(regex);
// [1-9] 代表1~9
// \d 表示任意数字
[] 代表单个字符
- [abc] a b 或 c (简单类)
- [^abc] 任何字符,除了a.b或c(否定)
- [a-zA-Z]a到z或A到Z,两头的字母包括在内(范围)
- [a-d[m-p]] a 到 d 或 m 到 p ; a-dm-p
- [a-z&&[def]] d e 或 f (交集)
- [a-z&&[^bc]] a 到 z 除了b和c ;等价于[ad-z]
- [a-z&&[^m-p]] a到z,而非m到p;等价于[a-lq-z]
常见对象(预定义字符类演示)
- . 任意一个字符
- \d 数字 : [0-9]
- \D 非数字 :[^0-9]
- \s 空白字符[\t\n]
- \S 非空白字符[^\s]
- \w 单词字符 : [a-zA-Z0-9_]
- \W 非单词字符 : [^\w]
常见对象(数量词)
- X? X,一次或一次也没有
- X* X,零次或多次
- X+ X,一次或多次
- X[n] X,恰好n次
- X[n,] X,至少n次
- X[n,m] X,至少n次,但不超过m次
Split() 根据正则表达式切割字符串
replaceAll(String regex,String replacement) 前面是正则表达式 , 后面是匹配上之后要替换的字符串
Sring regex = "1[3578]\\d{9}" // 手机号码的正则表达式
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find())
{
Ststem.out.println(m.group());
}