1.正则表达式的作用
作用一:校验字符串是否满足规则
作用二:在一段文本中查找满足要求的内容(爬虫)
2.正则表达式
(1)字符类(只匹配一个字符):
abc 只能是a,b,或c
\^abc 除了a,b,c之外的任何字符
a-zA-Z a到zA到Z,包括(范围)
a-d\[m-pll 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的交集。(等同于a-lq-z)
(2)预定义字符(只匹配一个字符):
. 任何字符
\d 一个数字:0-9
\D 非数字:\^0-9
\s 一个空白字符:\\t\\n\\x\\0B\\f\\r
\S 非空白字符:\^\\s
\w a-zA-Z_0-9英文、数字、下划线
\W \^\\w一个非单词字符
(3)数量词
X? X,一次或0次
X* X,零次或多次
X+ X,一次或多次
X{n} X,正好n次
X{n,} X,至少n次
X{n,m} X,至少n但不超过m次
例子:




3.爬虫
(1)基础爬取
实例:


(2)有条件爬取

- 需求1:


- 需求2:


((?!)Java)
//意思是java忽略大小写
- 需求3:


(3)贪婪爬取和非贪婪爬取

只写+或*表示贪婪匹配
+?非贪婪匹配
*?贪婪匹配
贪婪爬取:在爬取数据的时候尽可能的多获取数据
非贪婪匹配:在爬取数据的时候尽可能的少获取数据
ab+:
非贪婪匹配: abbbbbbbbbbbbbbbbb
贪婪匹配:ab




(4)正则表达式在字符串方法中的使用
| 方法名 | 说明 |
|---|---|
| public String matches(String regex) | 判断字符串是否满足正则表达式的规则 |
| public String replaceAll(String regex,String newStr) | 按照正则表达式的规则进行替换 |
| public String split(String regex) | 按照正则表达式的规则切割字符串 |