【问题标题】:How to match bounded-repeat as only n and m times如何仅将有界重复匹配 n 次和 m 次
【发布时间】:2011-12-28 04:47:24
【问题描述】:

基于this

a{n}  Matches 'a' repeated exactly n times.

a{n,}  Matches 'a' repeated n or more times.

a{n, m}  Matches 'a' repeated between n and m times inclusive.

问题> 如何匹配重复n或m次的'a'? 谢谢

【问题讨论】:

    标签: c++ regex boost


    【解决方案1】:

    非常简单:a{n}|a{m} :)

    好的?

    【讨论】:

    • 确实这似乎是唯一的方法(经过有限的研究)我希望有一个更简洁的方法。想象一下,你有一个复杂的字符集而不是'a',重复这么多次很乏味......
    【解决方案2】:

    我想知道这是否可以解决问题:

    a{n}|a{m}
    

    但是,如果您匹配 a{m},我不确定您期望得到什么:您是否也希望 a{n} 匹配?如果 a{n} 在 a{m} 中出现两次怎么办?

    【讨论】:

      【解决方案3】:

      我试图对上述答案发表评论(因为这符合莫斯蒂·莫斯塔乔提出的问题,但不能,所以我将添加另一个答案。

      我试图完成与 OP 相同的事情,答案非常有帮助:

      a{n}|a{m}
      

      所以以防万一这会帮助其他人:我正在尝试匹配一个 2 位或 4 位数字的年份字符串。 这不起作用,因为(我猜)正则表达式匹配 \d{2} 并继续前进:

      \d{2}|\d{4}
      

      但这有效:

      \d{4}|\d{2}
      

      也许这对其他人来说是显而易见的。但只是我的 0.02 美元。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-28
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        • 2019-09-05
        • 1970-01-01
        相关资源
        最近更新 更多