javascript 死磕正则(2)

先行断言、先行否定断言

中文翻译有点不好理解,原文是lookahead negetive lookahead

  • lookahead
    x只有在y前面才匹配
    (1)匹配的对象是x
    1. 比如:只匹配出现在ngnice前面的name字符串


      只匹配出现在ngnice前面的name字符串
    2. 匹配百分号前面的数字
const reg = /\d+(?=%)/;
匹配百分号前面的数字
  • negative lookahead
    x只有不在y前面才匹配
/x(?!y)/

后行断言、后行否定断言

lookbehind, negetive lookbehind

  • lookbehind
    y前面只有出现了x才匹配
    (1)匹配的对象的y
  1. 只匹配less文件后缀前面出现.module的文件
/(?<=\.module)\.less$/
  • negative lookbehind
    y前面只有不出现x才匹配
  1. 只匹配已.webp结尾,前面不出现.png .jpg的文件
/(?<!\.(png|jpg))\.webp$/
只匹配已`.webp`结尾,前面不出现`.png .jpg`的文件
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容