【问题标题】:how to check if a string contains an alphanum chars appears at least n times consecutively如何检查字符串是否包含字母字符连续出现至少 n 次
【发布时间】:2009-12-16 07:15:51
【问题描述】:

我正在测试一个字符串是否包含至少 n 个连续顺序的字符:

我有这个正则表达式,但它似乎不起作用

(\w\1){3,}

【问题讨论】:

    标签: c# regex vb.net


    【解决方案1】:

    (\w)\1{3,} 这确保你有一个字符至少重复四次。

    (\w\1) 的问题在于反向引用 \1 在捕获组本身内。 \1 指的是与第一个括号 () 组匹配的字符。

    如果要捕获整个匹配的字符串,请将正则表达式括在另一个括号组中。

    ((\w)\2{3,})
    

    注意这里的反向引用索引是\2,因为\1指的是外括号。

    查看示例:

    Regex      : ((\w)\2{3,})
    TestString : bbaaaaaacc
    Match      : aaaaaa
    $1         : aaaaaa
    $2         : a
    

    【讨论】:

      【解决方案2】:

      您是在寻找 n 个相同的字符还是仅仅 n 个字符?

      (\w)\1{2,} 找到一个字符,然后再找到两个相同的字符。因此,如果您在字符串中有 3 个或更多相同的字符连续顺序,它将匹配。

      (\w){3,} 将匹配 3 个或更多字符。

      【讨论】:

        猜你喜欢
        • 2016-07-20
        • 1970-01-01
        • 2020-12-12
        • 2015-01-04
        • 1970-01-01
        • 2017-04-14
        • 2012-03-24
        • 2017-03-13
        相关资源
        最近更新 更多