(.)\\1+ 在java中的正则含义是什么


 

表示匹配连续的多个相同的任意字符,只要找到字符串里面存在连续的两个或者以上的相同字符即匹配。

括号中的点表示任意字符,后面的\\1表示取第一个括号匹配的内容,后面的加号表示匹配1次或1次以上,二者加在一起就是某个字符重复两次或两次以上。

    /**
     * 1.将下面的国家重叠的字符替换成 竖线 |
     * ChinaqqqAmericahhhhhEnglandaaaaaaMexica
     */
    @Test
    public void test1()
    {
        String str="ChinaqqqAmericahhhhhEnglandaaaaaaMexica";

        //(.)\\1+:表示匹配连续的多个相同的任意字符,只要找到字符串里面存在连续的两个或者以上的相同字符即匹配。
        System.out.println(str.replaceAll("(.)\\1+", "|"));//China|America|England|Mexica
    }

    /**
     * 2.将下面的国家重叠的字符替换成 一个, 也就是去掉重复的分隔符
     * China|||||America::::::England&&&&&&&Mexica
     */
    @Test
    public void test2()
    {
        String str="China|||||America::::::England&&&&&&&Mexica";

        //(.)\\1+:表示匹配连续的多个相同的任意字符,只要找到字符串里面存在连续的两个或者以上的相同字符即匹配。 
        System.out.println(str.replaceAll("(.)\\1+","$1"));//China|America:England&Mexica
    }

 

    @Test
    public void test3(){
        String regex = "(.)\\1+";
        Pattern pattern = Pattern.compile(regex);

        String address="京东号";
        System.out.println(pattern.matcher(address).find());//false

        address="阿里巴巴号";
        System.out.println(pattern.matcher(address).find());//true
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM