【问题标题】:regular expression to match 4 or more identical characters匹配 4 个或更多相同字符的正则表达式
【发布时间】:2015-05-14 14:06:08
【问题描述】:

我需要正则表达式来匹配下面的情况。

4 个或更多连续相同的字符/数字;例如1111、aaaa、bbbb、2222等

我试过这种模式匹配

Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1", Pattern.CASE_INSENSITIVE);

但我发现它只匹配 3 个或更多相同的字符。

  1. 请告诉我需要进行哪些更改才能使其匹配 4 个或更多相同的字符。

  2. 我还需要检查特殊字符“\”。请告诉我我需要如何在模式匹配语句中添加...我需要给出 "\\" 吗?

【问题讨论】:

    标签: java regex pattern-matching


    【解决方案1】:

    您需要添加另一个反向引用:

    Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1\\1", Pattern.CASE_INSENSITIVE);
    

    基本上,括号表示匹配组。从那里三个反斜杠,指的是这个匹配的组,这意味着所有四个组必须相同。

    【讨论】:

    • 能否像其他语言一样在 Java 中缩短它,例如 (.)\1{3,}
    【解决方案2】:

    您也可以使用 {3,}...

    "([a-z\\d])\\1{3,}"
    

    而不是多次添加\\1(在java中没有尝试过)。

    【讨论】:

    • 我想应该是([a-z\\d])\\1{3,}
    猜你喜欢
    • 2013-12-16
    • 2014-05-21
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    相关资源
    最近更新 更多