博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式断言
阅读量:6847 次
发布时间:2019-06-26

本文共 654 字,大约阅读时间需要 2 分钟。

hot3.png

    正则断言用来匹配某个表达式前面或者后面必须要有什么,或者必须没有什么,但是这些字符是不会被匹配出来(这就是零宽度),例如,字符串’abc 我们要求abc字符前面必须要有一个’,但是匹配结果中是abc,不能包含这个号的,就叫正向零宽度断言,基于此有以下断言方式

1、  正向零宽度先行断言

描述:紧挨着需要匹配的字符后面必须有表达式exp匹配的字符

表达式:(?=exp)

举例:

123644_C67q_2457218.png

说明:由于hello后面要求必须要有一个world,故第一行的hello可以匹配成功,而第二行的hello由于后面不是world则不会被匹配成功

2、  正向零宽度回顾后断言

描述:要求要紧挨着匹配字符的前面必须要有符合表达式exp的字符

表达式:(?<=exp)

举例:

123654_nMI0_2457218.png

说明:这个要求world单词的前面必须要有一个hello的单词,否则则算是匹配失败,在这里面匹配到了第一行的world,而第二行的world则会匹配失败

3、  负向零宽度先行断言

描述:紧挨着需要匹配结果的后面不允许出现符合exp表达式的内容

表达式:(?!exp)

举例:

123703_KTJV_2457218.png

说明:紧挨着hello后面不允许出现world单词,所以第一行未能匹配

4、  负向零宽度回顾后断言

描述:紧挨着在需要匹配的结果前不允许出现符合 exp表达式的内容

表达式:(?<!exp)

举例:

123711_4QkY_2457218.png

说明:由于第一行的world之前有hello,故第一行未能匹配得到,第二行得以匹配

转载于:https://my.oschina.net/u/2457218/blog/598791

你可能感兴趣的文章
连续特征离散化和归一化
查看>>
CCF NOI1040 除法游戏
查看>>
如何使用Git上传项目代码到github
查看>>
HDU1312 ZOJ2165 Red and Black
查看>>
测试人员面试不自信怎么办?
查看>>
第一次实验报告
查看>>
正则匹配replace替换重复字符串
查看>>
[Linux学习]chattr配置文件隐藏属性及lsattr查看隐藏属性
查看>>
mybatis大数据提交和更新,数据SQL语句批量提交数据库
查看>>
每天一个小算法(Shell Sort2)
查看>>
Java数据结构与算法(7) - ch05双向链表(Double List)
查看>>
fiddler 教程
查看>>
自适应布局
查看>>
ILSpy c#反编译工具,附下载地址
查看>>
课堂练习——查找水王续
查看>>
在后台设置yii的配置文件
查看>>
(4/24) webpack3.x快速搭建本地服务和实现热更新
查看>>
Failure is not fatal, but failure to change might be.
查看>>
L2-015. 互评成绩
查看>>
iOS9新特性
查看>>