正则表达式

本文详细介绍了正则表达式的各种匹配模式,包括字符、字符组、区间、快捷匹配、特殊字符、取反、重复、分组、先行断言和后行断言等。适合初学者和进阶者提升正则表达式技能。
摘要由CSDN通过智能技术生成

多种匹配模式

实例 描述

[Pp]ython 匹配 “Python” 或 “python”。
rub[ye] 匹配 “ruby” 或 “rube”。
[abcdef] 匹配中括号内的任意一个字母。
[0-9] 匹配任何数字。类似于 [0123456789]。
[a-z] 匹配任何小写字母。
[A-Z] 匹配任何大写字母。
[a-zA-Z0-9] 匹配任何字母及数字。
[^au] 除了au字母以外的所有字符。
[^0-9] 匹配除了数字外的字符。

实例 描述
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,
请使用象 ‘[.\n]’ 的模式。
? 匹配一个字符零次或一次,另一个作用是非贪婪模式
+ 匹配1次或多次
* 匹配0次或多次
\b 匹配一个长度为0的子串
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。

一、入门

1、字符

输入 code就可以匹配所有包含code的数据

2、字符组

字符组([])允许匹配一组可能出现的字符。
[Pp]既可以匹配大写的P也可以匹配小写的p

3、区间

有一些常见的字符组非常大,比如,我们要匹配任意的数字,如果依照上述代码,每次我们都需要使用[0123456789]。

但是这样好吗?

如果要匹配从a-z的字母呢?我想你肯定不愿意从a写到z了!

为了适应这一点,正则表达式引擎在字符组中使用连字符(-)代表区间,依照这个规则,我们可以总结出三点:

要匹配任意数字可以使用[0-9];
如果想要匹配所有小写字母,可以写成[a-z];
想要匹配所有大写字母可以写成[A-Z]。
[]字符组中可以放多个条件例如,想要匹配数字的小写字母可以这样写:[0-9a-z]

4、快捷匹配数字和字母

如果想要匹配所有的字母,会使用[A-Za-z],要匹配数字会使用[0-9]

还有没有更简洁的方式呢?

正则表达式引擎提供了一些快捷方式如:\w 可以与任意单词字符匹配。

当我们想要匹配任意数字的时候也可以使用快捷方式\d,d即digit数字的意思,等价于[0-9]。

5、匹配特殊字符

正则表达使用了 - 号代表了区间,但是我们有时候需要匹配的符号就是 -号,该怎么办呢?

这个时候我们需要对-号进行转义操作,即 -。

在正则中使用 \ 就可以进行对特殊符号进行转义,对 - 进行转义就可以表示为 -,即 - 就代表了 - 号本身。

转义符 \ 也适用于其他的符号,例如匹配圆括号可以使用 (

5、取反

到目前为止,我们定义的字符组都是由可能出现的字符定义,不过有时候我们可能希望根据不会出现的字符定义字符组。
可以通过在字符数组开头使用 ^ 字符实现取反操作,从而可以反转一个字符组(意味着会匹配任何指定字符之外的所有字符)。
这里的 n[^e] 的意思就是n后面的字母不能为 e。

6、快捷方式取反

快捷方式也可以取反,例如对于\w的取反为\W,将小写改写成大写即可,其

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值