正则表达式学习记录

本文详细介绍了正则表达式的各种匹配方式,包括普通匹配、快捷匹配和多数据匹配。内容涵盖可选匹配、区间匹配、特殊字符匹配、取反匹配、重复匹配等技巧,并举例说明如何使用。 此外,还讲解了如何匹配数字、字母、空白、单词边界以及如何进行首尾匹配和任意字符匹配。对于多数据匹配,讨论了同种数据的重复匹配、重复区间以及开闭区间的概念,以电话号码和身份证号为例进行演示。最后,提到了贪婪和非贪婪模式在匹配中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式

一、普通匹配

1.普通匹配

直接输入需要匹配的内容

2.可选匹配

[Pp]表示既可以匹配大写P也可以匹配小写p

3.区间匹配

用-表示区间,如[a-z0-9A-Z]

4.特殊字符匹配

使用转义符 “\”来表示要匹配的特殊字符,如-表示匹配”-“

5.取反匹配

使用“^”表示取反,如 [ ^0-9]表示不包含0-9
n[ ^e]表示匹配n后面的字母不为e的字符组

二、快捷匹配

1.快捷匹配数字和字母

\d表示匹配任意数字
\w表示匹配任意单词字符,包括[A-Z]、[a-z]、[0-9]、_

2.快捷匹配空白

\s表示匹配空白字符,如空格、tab、换行等

3.匹配单词边界

\b表示单词边界,如 \bmaster\b 表示匹配有边界的master,即可匹配master abc,无法匹配masterabc

4.快捷取反匹配

普通取反使用“^”符号
快捷取反将小写改为大写,即表示取反,如\w表示匹配任意单词字符,\W即为对\w的取反
\D即为对\d的取反

5.首尾匹配

^abc表示匹配以abc为开头的字符串
abc$表示匹配以abc为结尾的字符串

6.任意字符匹配

用“.”代表匹配任何单个字符,只能出现在方括号外,如“.ab”表示匹配任意字符后是ab的字符串,可以匹配tab,无法匹配ab、ability、acb

7.可选字符匹配

如color和colour,两者均需要被匹配,此时可使用可选字符匹配,用“?”指定一个基本单元可选,如用“colou?r”来匹配两种拼写

三、多数据匹配

1.同种数据重复匹配

当需要匹配如电话号、身份证号等字符组时,可通过观察其特征,使用重复匹配。
在一个字符组后加上{N}就可以表示该字符组出现N次
如021-12345678可通过\d{3}-\d{8}进行匹配

2.重复区间

当需要匹配身份证号时,可以是17位,也可以是18位数字,此时可以通过设置区间进行匹配
使用{M,N}表示匹配的区间,M是下界,N是上界
**注:**当使用\d{17,18}时,既可以匹配17个数字,也可以匹配18个数字,不过当有18个数字时,优先匹配的是18个数字,因为正则表达式默认为贪婪模式,即尽可能的匹配更多字符,在表达式后加上?,即可使用非贪婪模式

3.开闭区间

当字符组重复次数没有边界时,使用开闭区间,如\d{2,}即为重复2次至无限次
速写:+表示重复次数为1次到无数次,*表示0次到无数次
如a\d+表示匹配a后跟随1个至无数个数字的字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值