首页 > 其他分享 >正则表达式的先行断言(lookahead)和后行断言(lookbehind)

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

时间:2022-10-10 18:12:15浏览次数:84  
标签:匹配 断言 lookahead re 正则 regular pattern expression lookbehind

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

1. (?=pattern)

只匹配后面紧跟着pattern正则的那一部分
即:对后头提出要求,后头必须匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中高亮的re,则可以使用/re(?=gular)/g
  2. 测试结果如下: 正则表达式在线测试 | 菜鸟工具

image

2. (?!pattern)

只匹配后面紧跟着不是pattern正则的那一部分
即:对后头提出要求,后头不能匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中高亮的re,则可以使用/re(?!g)/g
    image

3. (?<=pattern)

只匹配前面是pattern正则的那一部分
即:对前头提出要求,前头必须匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中单词开头的re,则可以使用/(?<=\s)re/g
    image

4. (?<!pattern)

只匹配前面不是pattern正则的那一部分
即:对前头提出要求,前头不能匹配pattern正则

  1. 例如对"a regular expression are"这个字符串:
    要想只匹配"a regular expression are"中单词中间的re,
    则可以使用/(?<!\W)re(?=\w)/g

tips:
其中,\W\w的否定,匹配任何非单词字符,等价于 [^A-Za-z0-9_]
!\W 则相当于 \w

image

标签:匹配,断言,lookahead,re,正则,regular,pattern,expression,lookbehind
From: https://www.cnblogs.com/grblog/p/16776697.html

相关文章

  • Predicate<T> 断言型函数接口示例
    Predicate<T>是一个函数接口,它接收一个实参,返回一个boolean类型的结果。它通常被用来处理一个对象集合的过滤。importjava.util.function.Predicate;importjava.util.......
  • jira项目笔记19-as 关键字用于断言
    在Typescript中,表示断言有两种方式。一种是扩号表示法:letsomeValue:any="thisisastring";letstrLength:number=(someValue).length;另一种使用as关键字:let......
  • 接口自动化框架脚手架-从Excel读取用例发起调用做断言
    作者:软件质量保障大家工作中统计测试用例、测试进度以及各种测试报表,或多或少离不开Excel,我们可以使用Excel公式实现自动化统计,当然也可以使用代码实现Excel数据的统计。今......
  • postman7种断言的使用
    导航:1.postman断言介绍2.状态码断言3.响应正文断言-包含4.响应正文断言-json字段5.响应头断言6.响应时间断言7.环境变量的断言---------分割线--------......
  • SystemVerilog断言(一)
    摘要SystemVerilog断言(SVA)可以直接添加到RTL代码中,也可以通过bindfiles间接添加。实践表明,最好使用bindfiles添加大多数断言。这篇论文将解释为什么将断言直接添加到RTL......
  • systemverilog中的断言
    终于来到了断言了,嘿嘿。assertion分为两种,立刻和并行,立刻断言其实跟普通的$display没什么不同。重点在并行断言。(一)首先的概念是concurrentassertion的构成:sequence->pr......
  • #yyds干货盘点#【愚公系列】2022年10月 Go教学课程 036-类型断言
    一、类型断言1,类型断言的定义GO中的类型断言用于检查接口类型变量所持有的值是否实现了期望的接口或者具体的类型。类型断言的语法格式如下:value,ok:=x.(T)其中,x......
  • 异常、断言和日志
    异常Throwable类Exception和Error都派生于Throwable类Exception类异常有两个分支:RuntimeException运行时异常,一般为程序错误导致:比如:错误的强制类型转换数组......
  • TypeScript:类型断言
    什么是类型断言有些时候,我们需要做一些“自己比编译器更清楚的知道自己在做什么”,这个时候就用到断言,告诉编译器:没错,就是这样的,就是要这么干。编译器也就假设:嗯,这个程序员......
  • 正则表达式的先行断言(lookahead)和后行断言(lookbehind)
    正则表达式的先行断言和后行断言一共有4种形式:(?=pattern)零宽正向先行断言(zero-widthpositivelookaheadassertion)(?!pattern)零宽负向先行断言(zero-widthnegativ......