正则表达式-切割

来源:互联网 发布:fdd lte网络 编辑:程序博客网 时间:2024/06/06 23:17
/*正则表达式-切割正则表达式:符合一定规则的而表达式.    作用:用于专门操作字符串。    特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。    所以学习正则表达式    好处:可以简化对字符串的复杂操作。    弊端:符号定义越多,正则越长,阅读性越差具体操作功能:1,匹配:String matches()方法.用规则整个字符串,只要有一处不符合规则,就匹配结束,返回false2,切割:String split();*/class  RegexDemo{    public static void main(String[] args)     {        //demo();        //checkTel();        //splitDemo();        splitDemo("zhangsan.lisi.wangwu","\\.");//"\"会转义,按照.来进行切割,单独1个"."表示任意字符,要转义2次    /*        正则中一个单独的点表示任意字符,所有字符都作为分隔符当然不会有任何结果\\.实际上被转义为两次,\\在java中被转换为一个'\'字符,然后'\.'被传给正则,\.表示对点字符进行转义,使.就表示字符'.',而不使用它在正则中的特殊意义*/        splitDemo("C:\\abc\\a.txt","\\\\");//因为\会转义,2个表1个,4个表2个        splitDemo("erkktyqquizzo","(.)\\1+");//按照叠词完成切割,为了可以让规则的结果被重用        //可以将规则封装成一个组.用()完成.组的出现都有编号        //从1开始.想要使用已有的组可以通过\n(n就是组的编号)摸形式来获取        //(.)\1//捕获组1 字符串//(.)\\1    }    public static void splitDemo(String str,String reg)    {        //String str = "zhangsan   lisi   wangwu";        //String reg = " +";//按照多个空格来进行切割        //String str = "zhangsan.lisi.wangwu";        //String reg = "\\.";//按照.来进行切割, 单独1个.表示任意字符,要转义2次        String[] arr = str.split(reg);        System.out.println(arr.length);        for (String s: arr )        {            System.out.println(s);        }    }    /*    匹配     手机号段只有 13xxx 15xxx 18xxx    */    public static void checkTel()    {        String tel = "13900001111";        String telReg = "1[358]\\d{9}";        System.out.println(tel.matches(telreg));    }    public static void demo()    {        String  str = "a";        String reg = "[bcd]";        boolean b = str.matches(reg);        System.out.println(b);    }    public static void cheQQ()    {        String qq = "1882345";        String regex = "[1-9]\\d{4,14}";        boolean flag = qq.matches(regex);//String的匹配regex方法        if (flag)            System.out.println(qq+"..is ok");        else            System.out.println(qq+"..is 错误的");    }    /*    对QQ号码进行校验    要求:5-15  0不能开头,只能是数字    这种方式,使用了String类中的方法,进行组合完成了需求,但是代码过于复杂。    */    public static void checQQ_1()    {        String qq = "";        int len = qq.length();        if (len>=5 && len<=15)        {            if (!qq.startsWith("0"))//Integer.parseInt("23c");NumberFormatException            {                   try                {                    long l = Long.parseLong(qq);                    System.out.println("qq:"+l);                }                catch (NumberFormatException e)                {                    System.out.println("出现非法字符");                }                               /*char[] arr = qq.toCharArray();                boolean flag = true;                for (int x = 0; x<arr.length;x++ )                {                    if (!(arr[x]>='0' && arr[x]<='9'))                    {                        flag = false;                        break;                    }                    if (flag)                    {                        System.out.println("qq:"+qq);                    }                    else                    {                        System.out.println("出现非法字符");                    }*/                }            }            else            {                System.out.println("不可以0开头");            }        }        else        {            System.out.println("长度错误");        }    }}
0 0
原创粉丝点击