1、正则表达式
练习——先爽一下正则表达式
正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。
需求:假如现在要求校验一个qq号码是否正确。
规则:6位及20位之内,0不能在开头,必须全部是数字。
1、先使用目前所学知识完成校验需求
2、然后体验一下正则表达式校验
2、正则表达式的作用
作用一: 校验字符串是否满足规则
作用二: 在一段文本中查找满足要求的内容
⭐⭐不需要记,可以通过API帮助文档,查找 类 Pattern
练习——请使用正则表达式完成如下需求
需求:请编写正则表达式验证用户输入的手机号码是否满足要求。
请编写正则表达式验证用户输入的邮箱号是否满足要求。
请编写正则表达式验证用户输入的电话号码是否满足要求。
①手机号码
②座机电话号码
③邮箱号码
练习——请使用正则表达式完成如下需求
需求
- 请编写正则表达式验证用户是否满足要求。
要求:大小写字母,数字,下划线一共4-16位
- 请编写正则表达式验证身份证号码是否满足要求。
1、简单要求:18位,前17位任意数字,最后一位可以是数字可以是大写或小写的x
2、复杂要求:按照身份证号码的格式严格要求
⭐⭐正则表达式小结
3、爬取
⭐练习1——本地爬虫和网络爬虫
有如下文本,请按照要求爬取数据。
Java自从从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两者是长期支持版本,下一个长期支持版本Java17,相信在未来不久Java17也会逐渐登上历史舞台
要求:找出里面所有的JavaXX
分析:
练习2——有条件的爬取数据
有如下文本,请按照要求爬取数据。
java自从从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和JAva11,因为这两者是长期支持版本,下一个长期支持版本JAVa17,相信在未来不久JAVA17也会逐渐登上历史舞台
需求1:爬取版本号8,11,17的Java文本,但是只要Java,不显示文本号。
需求2:爬取版本号8,11,17的Java文本。正确爬取结果位:Java8 JAva11 JAVa17 JAVA17
需求3:爬取除了版本号8,11,17的Java文本。
2
3
练习3——贪婪爬取和非贪婪爬取
有如下文本,请按照要求爬取数据。
Java自从从95年问世以来,abbbbbbbbbbbaaaaaaaa
经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两者是长期支持版本,下一个长期支持版本Java17,相信在未来不久Java17也会逐渐登上历史舞台
需求1:按照ab+的方式爬取ab,b尽可能多获取
需求2:按照ab+的方式爬取ab,b尽可能少获取
分析:
4、正则表达式在字符串方法中的使用
5、捕获分组和非捕获分组
组号的特点:
分组:分组就是一个小括号
每组是有组号的,也就是序号
规则1:从1开始,连续不间断。
规则2:以左括号为基准,最左边的是第一组,其次为第二组,以此类推。
\ \组号:表示把第X组的内容再出来用一次
练习——捕获分组的练习
捕获分组(默认):可以获取每组中的内容反复使用。
后续还要继续使用本组的数据。
正则内部使用:\\组号
正则外部使用:$组号
练习1
需求: 将字符串:我要学学编编编编程程程程程程
替换为: 我要学编程
非捕获分组:
分组之后不需要再用本组数据,仅仅是把数据括起来,不占组号。
符号 含义 举例 (? : 正则) 获取所有 Java(?:8|11|17) (? = 正则) 获取前面部分 Java(?=8|11|17) (? ! 正则) 获取不是指定内容的前面部分 Java(?!8|11|17)