文章の目录

  • 1、边界类断言
    • 1.1、`^`
    • 1.2、`$`
    • 1.3、`\b`
    • 1.4、`\B`
  • 2、其他断言
    • 2.1、x(?=y)
    • 2.2、x(?!y)
    • 2.3、(?<=y)x
    • 2.4、(?<!y)x
  • 写在最后

断言的组成之一是边界。对于文本、词或模式,边界可以用来表明它们的起始或终止部分(如向前断言,向后断言以及条件表达式)。

1、边界类断言

1.1、^

匹配输入的开头。如果多行模式设为 true,^换行符后也能立即匹配。

let reg = /^1[3-9]\d{9}/gm;
let str = "25000000000";
reg.test(str); // false
str = "15000000000\n17000000000";
let found = str.match(reg); // ['15000000000', '17000000000']

1.2、$

匹配输入的结束。如果多行模式设为 true,$换行符前也能立即匹配。

let reg = /^1[3-9]\d{9}7$/gm;
let str = "25000000000";
reg.test(str); // false
str = "15000000000\n170000000007";
let found = str.match(reg); // ['170000000007']

1.3、\b

匹配一个单词的边界(边界包括换行符和空格),这是一个字的字符前 / 后没有另一个字的字符位置。

let reg = /\bm/gm;
let str = "month\nmoom";
str.match(reg); // ['m', 'm']
reg = /th\b/gm;
str = "month\nthird";
str.match(reg); // ['th']
str = "month\nsomething";
str.match(reg); // ['th']
str = "month  ufo";
str.match(reg); // ['th']

1.4、\B

匹配非单词边界。

let reg = /on\B/gm;
let str = "at noon";
str.match(reg); // null
str = "noon noon\nnoon";
str.match(reg); // null
str = "ongoing";
str.match(reg); // ['on']

2、其他断言

2.1、x(?=y)

向前断言: x 被 y 紧随时匹配 x,结果不包括 y。

let reg = /\d(?=y)/g;
let str = "1y2y3";
str.match(reg); // ['1', '2']

2.2、x(?!y)

向前否定断言: x 没有被 y 紧随时匹配 x。

let reg = /\d(?!y)/g;
let str = "1y2y3";
str.match(reg); // ['3']

2.3、(?<=y)x

向后断言: x 跟随 y 的情况下匹配 x,结果不包括 y。

let reg = /(?<=y)\d/g;
let str = "y1y23";
str.match(reg); // ['1', '2']

2.4、(?<!y)x

向后否定断言: x 不跟随 y 时匹配 x。

let reg = /(?<!y)\d/g;
let str = "y1y23";
str.match(reg); // ['3']

写在最后

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

正则系列之断言Assertions相关推荐

  1. python断言语句_Python中的断言(Assertions in Python)

    Python中的断言(Assertions in Python) 断言是一种完整性检查,您可以在完成程序测试后打开或关闭. 想到断言的最简单方法是将它比作一个raise-if语句(或者更准确,即使是i ...

  2. Jmeter系列(18)- 断言Assertions 的入门介绍

    断言的介绍 可以断言服务器的响应内容 在性能测试脚本中使用断言,一般是为了调试脚本 在接口自动化测试中使用断言,一般是为了严谨的校验接口响应内容是否符合预期 断言成功与否 断言成功与否,可以通过监听器 ...

  3. Junit5系列-Junit5中Assertions断言类

    目录 系列导航 简介 案例解析 源码解析 Assertions与AssertNull 系列导航 点击跳转到系列博文目录导航 简介 junit5中的JUnit Jupiter提供了Assertions类 ...

  4. Regex 正则零宽断言

    http://baike.baidu.com/link?url=sLfovpZmIcS5Uz_tiidXoVtjl30Tu3wARMfhnEcbgEGzsb8g1z7dvtGNXTulu1KDodmi ...

  5. php 正则 零宽断言,正则表达式之零宽断言实例详解_正则表达式

    这篇文章主要介绍了正则表达式之零宽断言,简单介绍了零宽断言的概念.分类及php实现技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了正则表达式之零宽断言.分享给大家供大家参考,具体如下: 前言 ...

  6. SpringBoot单元测试断言 assertions

    断言 断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证.这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法.JUnit ...

  7. 正则系列——正则虐我千百遍,我要反抗了

    场景1:验证email是否合法 邮箱种类太多太多,什么net后缀,特殊的我们不做处理,下面我找了常用的一些邮箱: hyy@gmail.com 谷歌邮箱 hyy12@qq.com qq邮箱 hyy-12 ...

  8. SpringBoot--->>>单元测试-->>断言 assertions

    3.断言(assertions) 断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证.这些断言方法都是 org.junit.jupiter.api.Assertion ...

  9. 05-Jmeter添加断言Assertions

    目录 1. Response Assertion 响应断言 2. Duration Assertion 响应时间断言 3. Size Assertion 响应大小断言 4. 查看断言结果 1. Res ...

最新文章

  1. 使用wrk进行性能测试
  2. SVM: 实际中使用SVM的一些问题
  3. 冒泡排序的原理,思路,以及算法分析(Java实现)
  4. devices-list
  5. subprogram or cursor is declared in a package specification and must be defined in the package body
  6. 这几个 IntelliJ IDEA 高级调试技巧,用了都说爽!
  7. 黑马2016java_2016年成功的Java开发人员简介
  8. idea:properties in parent definition are prohibited警告去除
  9. 北京公交将标配智能辅助驾驶,具备行人防撞、车道偏离预警
  10. 转:jdk动态代理实现
  11. 基于Java内置的HttpServer实现轻量级Restful
  12. Servlet 容器
  13. 干货 | 产品助理入门攻略(一枚入行3年的PM内心独白)
  14. 用计算机写作文教学难点,《用计算机写作文》教学设计
  15. 第三集 怪物学院 第十六章
  16. HED 和 RCF 图像边缘检测
  17. 六一儿童节 | TcaplusDB祝大小朋友节日快乐
  18. 单页应用移动端弹窗穿透解决终极方案
  19. 【PTA】7-7 大炮打蚊子
  20. sklearn-机器学习笔记

热门文章

  1. non-broadcastable output operand with shape ()
  2. .net 超简单3句代码实现Quartz定时任务
  3. 2020网易游戏测试一面面经(春招上海)
  4. 张力控制PID增益(Kp)自适应算法详解(含SCL和梯形图完整源代码)
  5. day12-pyhton三神器!三神器!三神器!
  6. 浅谈三级管(PNP和NPN)导通基极(B)电位情况
  7. Mysql rbo和cbo_CBO和RBO介绍(好)
  8. SAP ABAP 添加企业微信群机器人并调用 API 发送消息
  9. 算法设计与分析: 5-16 布线问题
  10. 小学学校计算机房使用制度,实验室管理制度、计算机房管理制度