【问题标题】:PCRE Capture same letter X instnacesPCRE 捕获相同的字母 X 实例
【发布时间】:2014-09-26 22:04:00
【问题描述】:

假设我有以下可能的输入:

AAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBB
...
zzzzzzzzzzzzzzzzzzzzzzz
...
99999999999999999999999

我想编写简单的 PCRE 来验证我们是否面临这种情况,即给定字符 'X' 次的序列。

【问题讨论】:

    标签: regex pcre


    【解决方案1】:

    假设 X = 10。

    如果你知道这个角色,那很简单。例如,对于A:

    A{10}
    

    如果你想匹配任意个字符X次,正则表达式将是:

    (.)\1{9}
    

    说明:匹配一个字符,然后再尝试匹配同一个字符 9 次。

    如果您希望至少 X 次,请使用此变体:

    (.)\1{9,}
    

    如果您只想验证整个输入是否是相同字符的序列,则可以这样做:

    ^(.)\1*$
    

    或者这个,如果你还想验证长度:

    ^(.)\1{9}$
    

    【讨论】:

    • 您假设我们提前知道行应该有多长。 OP没有这么说。 (OP 也没有说我们。)
    • 好吧,显然我们提前知道这些行有多长。 :-)
    • @T.J.Crowder 我的最后一个例子没有假设。我真的不明白 OP 需要哪种特殊情况,所以我只写了一堆;)
    • (以前的)最后一个例子也没有做我很确定问题要求的事情:确保行的长度相等。
    • @T.J.Crowder 在我的理解中,OP 意味着每一行都是一个不同的示例输入(他在问题中说 inputs)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2015-05-06
    • 2016-09-17
    相关资源
    最近更新 更多