• 全网最易懂的正则表达式教程(3)- 量词


    正则详细教程系列可以看此链接的文章哦

    https://www.cnblogs.com/poloyy/category/1796055.html

    量词(限定符)

    代码/语法说明
    * 重复 0 次或更多次
    + 重复 1 次或更多次
    ? 重复零次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次
    • 简单来说,限定符就是可以让元字符重复匹配
    • 毕竟每个元字符只能匹配一个字符,如果要匹配 100 个字符,难道要写 100 个元字符吗
    • 这个时候用上元字符 + 限定符就可以解决这个问题了

    * 的栗子

    应该是最常用的限定符了

    first

    匹配文本 yy12菠萝
    正则表达式 w*
    匹配数量 1
    匹配结果 yy12

    second

    匹配文本 yy1_菠
    正则表达式 .1*
    匹配数量 4
    匹配结果 y、y1、_、菠

    third

    匹配文本 yy_菠萝
    正则表达式 d*w*
    匹配数量 1
    匹配结果 yy_

    + 的栗子

    first

    匹配文本 yy12菠萝
    正则表达式 w+
    匹配数量 1
    匹配结果 yy12

    second

    匹配文本 yy1112菠萝
    正则表达式 .1+
    匹配数量 1
    匹配结果 y111

    记住,限定符只对它前面一个元字符生效,这里是 1 ,所以是匹配一个 1 或者多个 1

    third

    匹配文本 yy_菠萝
    正则表达式 d+w+
    匹配数量 0
    原因 d 起码需要匹配到一个数字,但没有

    ? 的栗子

    first

    匹配文本 yy12菠
    正则表达式 w?
    匹配数量 6
    匹配结果 y、y、1、2、空、空

    second

    匹配文本 yy_12菠萝
    正则表达式 ._?.*
    匹配数量 1
    匹配结果 yy_12菠萝

    _ 可有可无

    third

    匹配文本 yy_121_2菠萝
    正则表达式  d?. 
    匹配数量 7
    匹配结果 y、y、_ 、12、1_ 、2菠、萝

    {n} 的栗子

    first

    匹配文本 yy12菠萝测试
    正则表达式  y{2}d{1}w.{2} 
    匹配数量 1
    匹配结果 yy12菠萝

    second

    匹配文本 13501489999
    正则表达式 ^135d{8}$
    匹配数量 1
    匹配结果 13501489999

    third

    匹配文本 023-81200222、023-81200223、023-81200224
    正则表达式 0d{2}-d{8} 
    匹配数量 3
    匹配结果

    023-81200222

    023-81200223

    023-81200224

      

    {n,} 的栗子

    first

    匹配文本 poloyy
    正则表达式  y{1,} 
    匹配数量 1
    匹配结果 yy

    second

    匹配文本 13501489999
    正则表达式 ^135d{1,}$
    匹配数量 1
    匹配结果 13501489999

    third

    匹配文本 023-81200222、023-81200223、023-81200224
    正则表达式 0d{1,}-d{1,}
    匹配数量 3
    匹配结果

    023-81200222

    023-81200223

    023-81200224

      

    {n,m} 的栗子

    first

    匹配文本 poloyy菠萝
    正则表达式 yy菠1{0,1}
    匹配数量 1
    匹配结果 yy菠

    second

    匹配文本 13501489999
    正则表达式 ^135d{1,8}$
    匹配数量 1
    匹配结果 13501489999

    third

    匹配文本 023-81200222、023-81200223、023-81200224
    正则表达式 0d{1,2}-d{1,8}
    匹配数量 3
    匹配结果

    023-81200222

    023-81200223

    023-81200224

  • 相关阅读:
    SSD5_Optional Exercise 5分析
    SSD5_Optional Exercise 3分析
    SSD5_Optional Exercise 1 分析
    SSD5_Optional Exercise 4不会
    SSD5_ Exercise 2分析
    SSD5_Optional Exercise 2分析
    SSD5_Exercise 3分析
    SSD5_Recommended Exercise 4 分析
    2013蓝桥杯C语言本科组B
    hdu 1316 How Many Fibs?【JAVA大数】
  • 原文地址:https://www.cnblogs.com/poloyy/p/13212183.html
Copyright © 2020-2023  润新知