代码之家  ›  专栏  ›  技术社区  ›  Julio Faerman

如何编写regex“所有字符都相同”?

  •  7
  • Julio Faerman  · 技术社区  · 14 年前

    我想匹配:

    aaaaaa
    bb
    c
    

    但不是:

    aaabaaa
    cd
    

    4 回复  |  直到 9 年前
        1
  •  20
  •   Bart Kiers    14 年前

    假设regex引擎支持反向引用,

    ^(.)\1*$
    

    在Java中

    theString.matches("(.)\\1*")
    
        2
  •  8
  •   sepp2k    14 年前

    使用反向引用:

    (.)(\1)*
    

    阅读:匹配后面跟同一个字符0次或更多次的任何字符。

    根据regexp引擎和您的需要,您可能希望锚定regex以仅匹配整个字符串,而不是子字符串。

        3
  •  0
  •   dawg    14 年前

    如果你想捕捉你匹配的东西,它就是 ^((.)\2*)$

        4
  •  0
  •   Denis Macedo    14 年前

    对于这个问题,您可以使用backrefence:

    (\W+)s+1 1

    它检查由空格分隔的重复单词。