美文网首页
正则基础之断言(Assertion)

正则基础之断言(Assertion)

作者: Tinyspot | 来源:发表于2023-01-10 22:37 被阅读0次

1. 断言(Assertion)

  • 不匹配完整的文本,只需判断在某个位置左/右侧的文本是否符合要求
  • 简而言之,断言是指对匹配到的文本位置有要求
  • 常见的断言有三类:
    • 单词边界
    • 行起始/结束位置
    • 环视
  • 单词边界匹配的是某个位置而不是文本,在正则表达式中,这类匹配位置的元素叫作锚点(anchor),如 \b ^ $

2. 单词边界(Word Boundary)

  • \b 匹配的是“单词边界”位置,而不是字符
  • \w 表示 [A-Za-z0-9_],\w+ 一般用来匹配单词
image.png

示例:正则 \b\w+\b

image.png

示例:连字符-
数据 e-mail
正则 \b[-\w]+\b

3. 行起始/结束位置

  • ^ $ 开始和结束
平台 行终止符
UNIX/Linux \n
Windows \r\n
Mac OS \n

4. 环视(Look Around)

  • 环视结构 (?!…)
    正则 (?!/), (?!…)是这个结构的标识,/ 才是真正的表达式,整个结构的意思是“当前位置之后(右侧),不允许出现 / 能匹配的文本”

4.1 环视的分类

  • 肯定顺序环视(positive-lookahead)
  • 否定顺序环视(negative-lookahead)
  • 肯定逆序环视(positive-lookbehind)
  • 否定逆序环视(negative-lookbehind)
image.png

4.2 先行断言 vs 后行断言

  • 先行断言从左往右看,后行断言从右往左看
  • ?=express正向先行断言 Windows(?=95|98|NT|2000)
  • ?!=express 反向先行断言
  • ?<=express 正向后行断言
  • ?<!express 反向后行断言
image.png image.png

结果:
右侧必须出现三个数字字符,
右侧不能出现三个数字字符,
左侧必须出现三个数字字符,
左侧不能出现三个数字字符

相关文章

  • swift基础—断言(Assertion)

    可选类型可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺失或者值并不满足...

  • java断言使用

    在c++中我们习惯用断言(Assertion),静态断言(Static Assertion)等对参数和环境做出判断...

  • 自学Swift之断言 assertion

    断言概念: 官方概念太无聊,并且冗余... 断言(assertion) 是一个全局函数 断言理解: 我理解的断言(...

  • TestNG断言

    TestNG中的Assertion,也是断言。断言是测试中最难写的部分。 Assert类(硬断言) 断言类是Ass...

  • jemeter断言

    一 响应断言 1.添加响应断言 2.设置响应断言 3.模式匹配规则 二 Size Assertion (字节大小断...

  • 【JMeter】JSON断言中的JSON Path

    【JSON Assertion】就是JMeter断言中的JSON断言。此组件允许对JSON文档执行验证。它在使用过...

  • SAML -- 安全断言标记语言

    一、简介 SAML:Security Assertion Markup Language安全断言标记语言标识化组织...

  • 单点登录 - SAML协议

    SAML 即安全断言标记语言,英文全称是 Security Assertion Markup Language。它...

  • Java学习笔记之断言(Assertion)

    (最近刚来到简书平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看...

  • TypeScript类型断言

    类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。 语法 在 tsx 语法(Reac...

网友评论

      本文标题:正则基础之断言(Assertion)

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