正则表达式

感觉正则表达式还挺常用的,之前学了,但总是容易忘记,这一次好好整理一下笔记,希望下次需要使用时候,可以更快的使用

工具

练习网站
学习网站

基础语法

Flag标志

i 忽略大小写

使我们编写的表达式不再大小写敏感

g 全局

全局标志使表达式选中所有匹配项,如果不启用全局标志,那么表达式只会匹配第一个匹配项

m 多行

正则表达式将所有文本视作一行。但如果我们使用了多行标志,它就会单独处理每一行。

组和引用

() 组,我们可以对一个表达式进行分组,并用这些分组来引用或执行一些规则

在成为组之后可以使用$1进行按照顺序替换

\1 引用,1表示分组的顺序,\2表示引用第二组

(?:) 非捕获组,可以让一个组不被引用,这个组就不会被引用,其他的组重新拍好顺序之后,按照顺序替换

字符类

[abc] 字符集,如果一个词中的字符可以是各种字符,我们就将所有的可选字符写进中括号 [] 中

[^abc] 否定字符集,一个词中的字符否定那几个

在中括号中是否定,如果在外面就是开头

[a-z] 范围,为了查找指定范围的字母,我们需要将起始字母和结束字母写进 [] 中,中间用连字符 - 分隔。区分大小写

. 点,可以匹配任何字符,包括特殊字符和空格

\w 单词,查找字母、数字和下划线

\W 非单词,匹配除字母、数字和下划线之外的字符。

\d 数字

\D 非数字

\s 空白符

\S非空白符

量词与分支

+ 加号,表示加号前面的字符出现一次或多次

* 星号,表示一个字符不出现或者出现多次

{1,3} 重复,在一个字符的末尾加上大括号表示这个字符可以出现的次数

? 可选,表示一个字符可选可不选

| 分支,竖线允许一个表达式包含多个不同的分支。所有分支用 | 分隔

比如,开头是p或则P,可以使用(p|P)或者[pP]

\ 表示转义字符
转义字符可以使用在*,让他不再是出现多次的意思,而是普通的字符

锚点

^ 字符串或行的开头

$ 字符串或行的末尾

\b 单词边界,表示边界不会匹配不在边界中的

\btree\b,就只会匹配tree,不会匹配trees什么的

用来匹配完整的单词,数字

\B 非单词边界

匹配一个整体中的一部分

前瞻和后顾

(?=) 正向先行断言

为了只匹配后面有 PM 的数值,我们需要在表达式后面使用正向先行断言 (?=),并在括号内的 = 后面添加 PM

(?!) 负向先行断言

! 后面添加 PM,从而只匹配没有 PM 的数值
比如:
\$(?!\d+)匹配后面不是数字的$符号

(?<=) 正向后行断言

为了只匹配前面带有 $ 的数字。我们要在表达式前面使用正向后行断言 (?<=),并在括号内的 = 后面添加 $。

(?<!) 负向后行断言

匹配前面没有$的数字, (?<!$)\d+

匹配

贪婪匹配

正则表达式默认执行贪婪匹配。这意味着匹配内容会尽可能长

懒惰匹配

与贪婪匹配不同,懒惰匹配在第一次匹配时停止

.* 会尽可能多的进行匹配,只看首尾,不会在意中间字符的匹配
贪婪匹配

.*? 会匹配尽可能少的字符,但会匹配所有结果
懒惰匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值