正则表达式30分钟入门40分钟进阶


正则练习网址: https://www.codejiaonang.com/
正则在线测试网站: https://regexr-cn.com/

一、正则表达式入门

1.1字符组

正则表达式中字符组使用中括号([])包裹,作用是匹配中括号里面的元素任意一次。如下:
在这里插入图片描述

1.1.1字符组中横杠(-)表示区间

字符组中可以使用横杠来表示区间,省去大量写操作。
如图:
在这里插入图片描述

1.1.2特殊字符需转义

如果需要再字符组内对横杠(包括其他特殊字符)进行匹配,需要再“-”前面加上转义字符:
在这里插入图片描述

1.1.3取反

如果不想取某一类字符可使用“^”对其取反,如下图:
在这里插入图片描述

总结

在这里插入图片描述

1.2快捷方式

1.2.1 \d匹配数字 \w匹配字符(特殊字符除外)

\d表示匹配所有数字,\w表示匹配所有字符,如下图:
在这里插入图片描述
在这里插入图片描述

1.2.2 \s匹配空格

可以使用\s来匹配空格和缩进:
在这里插入图片描述

1.2.3匹配单词边界

匹配内容中完整的单词:
在这里插入图片描述

1.2.4快捷方式取反

\W\w的取反,\D\d的取反,\S\s的取反。如:
在这里插入图片描述

1.2.4开始和结束

目标前使用^可以匹配开始位置字符,在目标后使用$可以匹配结束位置的字符:
在这里插入图片描述

1.2.5任意字符

使用点(.)可以匹配任意字符(除换行符即\n):
在这里插入图片描述

1.2.6 可选字符

匹配一个可以出现也可以不出现的字符:
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

1.3匹配多个数据

1.3.1 重复次数

在所需要匹配的字符后面加上大括号,里面填充数字,这个数字表示重复的次数:
在这里插入图片描述

1.3.2 重复区间

使用大括号内的数字区间可匹配响应范围个数的字符:
在这里插入图片描述
如果在后面加上了?,就会只匹配区间开始数量的字符,在这里?表示非贪婪模式:
在这里插入图片描述
如果大括号使用前闭后开的形式,表示匹配第一元素开始以上的内容:
在这里插入图片描述

1.3.3 开闭区间

+相当于{1,}*相当于{0,}
在这里插入图片描述
在这里插入图片描述

1.3.4 匹配所有手机号码

在这里插入图片描述

1.3.4 匹配所有网址

在这里插入图片描述

二、正则表达式进阶

2.1分组与溯回引用

2.1.1分组

在正则表达式中还提供了一种将表达式分组的机制,当使用分组时,除了获得整个匹配。还能够在匹配中选择每一个分组。
要实现分组使用()即可。如下:
在这里插入图片描述
在这里插入图片描述

2.1.2 或者条件

使用分组的同时还可以使用 或者(or)条件:
在这里插入图片描述

2.1.3 非捕获分组

有时候,我们并不需要捕获某个分组的内容,但是又想使用分组的特性。
这个时候就可以使用非捕获组(?:表达式),从而不捕获数据,还能使用分组的功能。
在这里插入图片描述

2.1.4 回溯引用

那如果想让后面分组的正则和第一个分组的正则匹配同样的数据
可以使用分组的回溯引用,使用\N可以引用编号为N的分组,如下:
在这里插入图片描述
在这里插入图片描述

2.2先行断言

2.2.1 正向先行断言

正向先行断言:(?=表达式),指在某个位置向右看,表示所在位置右侧必须能匹配表达式,但只提取该位置的数据:
在这里插入图片描述

2.2.1 反向先行断言

反向先行断言(?!表达式)的作用是保证右边不能出现某字符
在这里插入图片描述

2.3后行断言

正向后行断言

正向后行断言:(?<=表达式),指在某个位置向左看,表示所在位置左侧必须能匹配表达式

反向后行断言

反向后行断言:(?<!表达式),指在某个位置向左看,表示所在位置左侧不能匹配表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值