1.Pattern
(1)在java.util.regex包下,表示正则表达式
2.Matcher
(1)在java.util.regex包下,表示一个文本匹配器
(2)按照正则表达式的规则去读取字符串,从头开始读取,在大串中找符合规则的字串
例如:
String s = "abcde";
String regex = "abc"
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
扩展
?i:忽略大小写
3.贪婪爬取和非贪婪爬取
(1)贪婪爬取:在爬取数据的时候尽可能的多获取数据,默认方式
(2)非贪婪爬取:在爬取数据的时候尽可能的少获取数据
4.正则表达式在字符串方法中的使用
(1)public String[] matches(String regex):判断字符串是否满足正则表达式的规则
(2)public String replaceAll(String regex,String newStr):按照正则表达式的规则进行替换
(3)public String[] split(String regex):按照正则表达式的规则切割字符串
说明:replaceAll方法在底层跟之前一样会创建文本解析器的对象,然后从头开始去读取字符串中的内容,只要有满足的,那么就用第二个参数去替换
5.分组
(1)分组
分组就是一个小括号
(2)捕获分组
1.捕获分组就是把这一组的数据捕获出来,在用一次
2.正则内部使用:\\组号:表示把第X组的内容再用一次(再正则表达式的里面)
3.正则外部使用:$组号:表示把第X组的内容再拿出来用(再正则表达式的外面)
(3)非捕获分组
1.概念
分组后不需要再使用本组的数据,仅仅是把数据括起来
2.常用符号
(1)?=正则表达式:获取前面的数据
(2)?:正则表达式:获取所有数据
(3)?!正则表达式:获取不是指定内容的前面部分
(4)组号的特点
1.从1开始,连续不间断
2.以左括号为基准,最左边的是第一组