美文网首页
正则表达式——02:零宽断言

正则表达式——02:零宽断言

作者: 大苍狗 | 来源:发表于2018-12-04 22:30 被阅读24次

在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了。

零宽断言正如它的名字一样,是一种零宽度的匹配,它最终匹配结果只是一个位置而已。

零宽断言有正向(positive)、负向(negative)、先行(lookahead)、后行(lookbehind),一共有4种组合形式:

  • (?=exp) 零宽正向先行断言(zero-width positive lookahead assertion)
  • (?<=exp) 零宽正向后行断言(zero-width positive lookbehind assertion)
  • (?!exp) 零宽负向先行断言(zero-width negative lookahead assertion)
  • (?<!exp) 零宽负向后行断言(zero-width negative lookbehind assertion)

这里面的exp是一个正则表达式。

(1)先行(lookahead) & 后行(lookbehind)

先行断言,是当扫描指针位于某处时,引擎会尝试匹配指针还未扫过的字符,先于指针到达该字符,故称为先行。

后行断言,引擎会尝试匹配指针已扫过的字符,后于指针到达该字符,故称为后行。

(2)正向(positive)和负向(negative)

正向就表示匹配括号中的表达式,负向表示不匹配。

(3)表达式详解

eg.:(?<=exp)

  • ?表示零宽;
  • reg表示这个宽度为零的(边界)的表达式;
  • <箭头向后,就是lookbehind;没有箭头,默认为正向lookahead;
  • =等于,就是匹配,positive;!不等于就是不匹配,negative;
操作符 说明 实例
(?=exp) 正向先行断言,代表字符串中的一个位置,紧接该位置之后的字符序列能够匹配exp re(?=gular)a regular expression这个字符串,匹配regular中的re,但不会匹配expression中的re
(?<=exp ) 正向后行断言,代表字符串中的一个位置,紧接该位置之前的字符序列能够匹配exp
(?!exp) 负向先行断言,代表字符串中的一个位置,紧接该位置之后的字符序列不能匹配exp
(?<!exp) 负向后行断言,代表字符串中的一个位置,紧接该位置之前的字符序列不能匹配exp

相关文章

  • Java学习笔记 - 第026天

    每日要点 正则表达式 例子1:零宽正向先行断言、零宽负向先行断言、零宽正向后行断言、零宽负向后行断言 异常 自定义...

  • CocosCreator3.x开发笔记8: Invalid re

    在iOS下运行报错,是因为正则不支持 因为ios不支持零宽断言 什么是零宽断言? 粗略总结:零宽断言是正则表达式中...

  • 浅谈正则表达式(中)

    本节我们继续接着浅谈正则表达式(上)来讲正则表达式的其他使用。 零宽断言 断言:俗话的断言就是“我断定什么什么”,...

  • 正则表达式 学习

    参考:正则表达式30分钟入门教程 元字符 字符转义 分枝条件 分组 向后引用 零宽断言 负向零宽断言 贪婪和懒惰 ...

  • 正则表达式的先行断言(lookahead)和后行断言(lookb

    正则表达式的先行断言和后行断言一共有4种形式:(?=pattern) 零宽正向先行断言(zero-width po...

  • 正则表达式——02:零宽断言

    在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了。...

  • 零宽断言

    零宽度正预测先行断言 格式:(? = exp )解释: ? 是待处理的字符串 ?后面能匹配表达式 例子? 表达...

  • 零宽断言

    今天我们来讲一下正则 零宽断言还有其他的名称,例如"环视"或者"预搜索","预查" 等等 作用: 作用是给指定位置...

  • 正则表达式-零宽断言

    零宽 零宽说的是这个表达式不匹配任何字符,只匹配一个位置 断言 我要匹配的字符串一定要满足这个条件 一下采用pyt...

  • 正则表达式零宽断言

    在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了。...

网友评论

      本文标题:正则表达式——02:零宽断言

      本文链接:https://www.haomeiwen.com/subject/xzkbcqtx.html