年月日正则_正则表达式进级

本篇内容分组、回溯

分组

  • 当使用分组时,除了获得整个匹配。

  • 还能够在匹配中选择每一个分组。

  • 要实现分组很简单,使用()即可。

看一下用分组提取手机号、IP、html标签中的响应数据

6d44352a1b9e4d812830e75154da6aa5.png

6996fd6040b59d8a3b9bcabc3dccf719.png

8027e903019c4c9b97df3ab7934be3db.png

8d8ff50f092cfc1db341638cd10d3ed9.png

5dac686823f256fe6efc9913ab21e968.png

贪婪和懒惰

贪婪是尽可能的多

b35abf91680110486c6fb613b0fd6e70.png

懒惰是尽可能的少

dfdfa22ce2aac7992427713f83db5662.png

贪婪匹配和懒惰匹配 影响的是正则表达式的限定符的匹配结果;

在限定符后面加上?,则为懒惰模式;在限定符后面不加?,则为贪婪模式;

正则表达式语法说明
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到Im次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复

提取学号

有些学校的学号是由多个关键信息组成的,例如:`2019-5013-08` `2019`表示入学年份,`5013`表示班级代码,`08`表示班级中的排序。

接下来编写正则表达式匹配不同格式的学号,并将其中的关键信息用分组提取出来,需要分成三个分组。

5b3a6b924150e64782d439698d7d5ec2.png

提取年月日

8367b9711817d7907b59f3733ec9c6a0.png

或者条件

使用分组的时候,可以使用或者条件:各个后缀名之间加上一个 | 符号

提取视频

92adaa98591bb355bcb69170819d47b2.png

提取图片

e2c7aa7f4d04f673cd9e885c0992dffc.png

非捕获

并不需要捕获某个分组的内容,但又使用分组的特性。可以使用非捕获组(?:表达式),从而不捕获数据,还能使用分组的功能。

提取目标数据中的电话号码:75855

ec635c8f3f54e624e8d83ff46c42eeca.png

多格式年月日的提取

20210102
2021-01-02
2021-1-2
2021.01.02
2021 01 02
2021 1 2
2021/01/02

6ec0c52a8df8b99eadd1e1983a79ffdf.png

[-./\s]表示匹配三个可能出现的分隔符-./和空白,?表示匹配它们0次或者1次,其他年月日的数据使用\d{N}与分组结合就可以提取到目标数据。

提取多格式电话号码

dd2d238016ee067aa1f6d2c4971274ad.png

回溯

运用也有正则表达式知识,去操作标签语言的时候。

b33f1751999e18c30860b5f0be43b7e7.png

上图可知在标签不一样的时候是无法进行辨识的。

回溯,就是要求和之前分组一样。

239d4172c065e81dfb2a83456b28ab76.png

(.*?)\1>中有两个分组,\1表示第一个分组。

b672198b3a4fc9c84356b258fa12564f.png

上图的练习内容可以看到是ABBA型,\2表示第二个分组。

b96f5485023ae621fc7278e314e6a9cd.png

上图的练习内容可以看到是AB【C】【D】AB【C】【D】型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值