• 正则系列之量词(Quantifiers)



    量词表示要匹配的字符或表达式的数量。

    1、x*

    将前面的项“x”匹配 0 次或更多次。

    let reg = /bo*/g;
    let str = "A ghost booooed";
    str.match(reg); // ['boooo']
    str = "A bird warbled";
    str.match(reg); // ['b', 'b']
    str = "A goat grunted";
    str.match(reg); // null
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、x+

    将前一项“x”匹配 1 次或更多次,等价于{1,}

    let reg = /bo+/g;
    let str = "A ghost booooed";
    str.match(reg); // ['boooo']
    str = "A bird warbled";
    str.match(reg); // null
    str = "A goat grunted";
    str.match(reg); // null
    reg = /a+/g;
    str = "caaaaaaandy";
    str.match(reg); // ['aaaaaaa']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3、x?

    将前面的项“x”匹配 0 或 1 次。

    如果在任何量词*+?{}之后使用?,则使量词是非贪婪的 (匹配最小次数),而不是默认的贪婪的 (匹配最大次数)。

    let reg = /bo?/g;
    let str = "A ghost booooed";
    str.match(reg); // ['bo']
    str = "A bird warbled";
    str.match(reg); // ['b', 'b']
    str = "A goat grunted";
    str.match(reg); // null
    reg = /bo??/g;
    str = "A ghost booooed";
    str.match(reg); // ['b']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4、x{n}

    其中“n”是一个正整数,与前一项“x”的 n 次匹配。

    let reg = /a{2}/g;
    let str = "candy";
    str.match(reg); // null
    str = "caandy";
    str.match(reg); // ['aa']
    str = "caaandy";
    str.match(reg); // ['aa']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、x{n,}

    其中,“n”是一个正整数,与前一项“x”至少匹配“n”次。

    let reg = /a{2,}/g;
    let str = "caaandy";
    str.match(reg); // ['aaa']
    
    • 1
    • 2
    • 3

    6、x{n,m}

    其中n为0或正整数,m为正整数,且m > n,前一项x至少匹配n次且最多匹配m次。

    let reg = /a{2,4}/g;
    let str = "caaaaaaaaaaandy";
    str.match(reg); // ['aaaa', 'aaaa', 'aaa']
    
    • 1
    • 2
    • 3

    7、x*? x+? x?? x{n}? x{n,}? x{n,m}?

    默认情况下,像*+这样的量词是“贪婪的”,这意味着它们试图匹配尽可能多的字符串。量词后面的字符?使量词“非贪婪”:这意味着一旦找到匹配,它就会停止。

    let reg = /a{2,4}?/g;
    let str = "caaaaaaaaaaandy";
    str.match(reg); //  ['aa', 'aa', 'aa', 'aa', 'aa']
    
    • 1
    • 2
    • 3

    后记

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

    在这里插入图片描述

  • 相关阅读:
    计算机网络(43)
    驱动开发,stm32mp157a开发板的led灯控制实验
    原生 canvas 如何实现大屏?
    NebulaGraph实战:3-信息抽取构建知识图谱
    秋招每日一题T28——最大连续子序列
    数据库安全性
    SpringBoot终幕——日志的输出以及Lombok常用注解
    低代码是什么?用它来开发系统有什么优势呢?
    pip version 更新
    Shell第四章《正则表达式》
  • 原文地址:https://blog.csdn.net/weixin_62277266/article/details/125557986