正则表达式
本质就是一个字符串,可以指定一些规则,来校验其它字符串。
[] : 里面的内容出现一次
字符类(默认匹配一个字符)
[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\x0B\f\r]
\S //非空白字符: [^\s]
\w //[a-zA-Z_ 0-9]英文、数字、下划线
\W //[^\w] -个非单词字符
贪婪的量词(配合匹配多个字符)
X? //X,一次或根本不
X* //X,零次或多次(任意次数)
X+ //X,一次或多次
X{n} //X,正好n次
X{n,} //X,至少n次
X{n,m} //X,至少n但不超过m次
正则表达式验证字符串使用
String regex = “编写规则”;
“需要校验的字符串”.matches(regex)
String类中与正则有关的常见方法
public String replaceAll(String regex,String newStr) //按照正则表达式匹配的内容进行替换
Public String[] splip(String regex) //按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组
使用正则做爬取
//将正则表达式封装成Pattern类型的对象
Pattern pattern = Pattern.compile(regex);
//获取匹配器对象
Matcher matcher = pattern.matcher(data);
//通过匹配器,从内容中爬取信息
while(matcher.find()){
System.out.println(matcher.group());
}