• 正则表达式


    public class RegularExpression {

        //字符串处理利器,字符串查找,匹配,替换,应该叫字符匹配    

        //parten//要符合的那种模式    

         //用这种模式匹配一个字符串后产生的结果    

        public static void main(String[] args) {        

            //一个点代表任何一个字符        

           /*p("abc".matches("..."));        

           //"d"代表的是一位数字,两个反斜杠,一个代表转义字符        

           p("ab6878799999bf".replaceAll("\d", "-"));        

          //把一个正则表达式编译一下,编译以后放到模式里面,pattern代表字符串要被匹配的一个模式        

          //我匹配一个具有三个字符的字符串,这三个字符是a-z中的某个字母 []代表范围        

          Pattern p = Pattern.compile("[a-z]{3}");        

          //match表示我去匹配某一个字符串,匹配的结果放大matcher中        

          Matcher m = p.matcher("abc");                

          p(m.matches());*/                

           //初步认识. * + ?        

          //a出现的次数是否为0个或多个        

          /*p("aaa".matches("a*"));        

          //a出现的次数为1个或多个        

          p("aaa".matches("a+"));        

          //a出现的次数为1个或0个        

          p("aaa".matches("a?"));        

          p("".matches("a*"));        

          p("".matches("a?"));*/                

          //X{n} exactlly n times        //X{n,} at least n times         //X{n,m} at least n times,but not more than m times        

         /*p("2223434343436667".matches("\d{3,100}"));        

         //.是转意字符要用\.代替        

         p("192.168.0.aaa".matches("\d{1,3}\.\d{1,3}\.\d{1,3}\..{1,3}"));        

         p("192".matches("[0-2][0-9][0-9]"));*/        

        //中括号代表取这里面中的一个字符就可以了       

         /* p("a".matches("[abc]"));        

         //小尖括号表示除了abc之外的其他字符都可以        

         p("j".matches("[^abc]"));        

         p("A".matches("[a-zA-Z]"));        

         p("A".matches("[a-zA-Z]"));        

          //和上面的一样        

          p("A".matches("[a-z]|[A-Z]"));        

          p("A".matches("[a-z[A-Z]]"));        

          p("R".matches("[A-Z&&[RFG]]"));*/        

         //         //"s"代表空白字符( (tab) x0b(backspace)f (enter)),S代表取反 D也一样       

         //w 代表单词的字符,数字字母下划线[a-zA-Z_0-9]       

          /* p(" ".matches("\s{4}"));        

          p(" ".matches("\S"));        

          p("a_8".matches("\w{3}"));        

          p("abd888&^%".matches("[a-z]{1,3}\d+[&#^%]+"));        

          p("\".matches("\\"));                

          //boundry                

           p("hrifsff".matches("^h.*"));                

           p("hellfo ir".matches(".*r$"));        

           // word boundry        

           p("hello ir".matches("^h[a-z]{1,3}o\b.*"));        

           p(" ".matches("^[\s&&[^\n]]*\n$"));        

           //pratise                

           p("aaa 8888c".matches(".*\d{4}."));        

           p("aaa 8888c".matches(".*\b\d{4}."));*/                

           String s = "12345-123-43-3456";        

           Pattern p = Pattern.compile("\d{3,5}");        

           Matcher m = p.matcher(s);        

           //匹配整个字符串 //      

           p(m.matches()); //       

           m.reset();        

           //find sub string /*       

           p(m.find());        

           p(m.start()+" "+m.end());        

           p(m.find());        

           p(m.find());        

           p(m.find());*/        

           //looking at 每次都从头上开始找 //       

           p(m.lookingAt()); //       

           p(m.lookingAt()); //       

           p(m.lookingAt()); //       

           p(m.lookingAt());        

           /*       

           Pattern p1 = Pattern.compile("java",Pattern.CASE_INSENSITIVE);                

           String _string = "java Java JAVA Ilove java You hate Java";        

           Matcher mm = p1.matcher(_string);*/        

          //        while(mm.find()) {

          //            p(mm.group());

          //        }

          //        String _string1 = mm.replaceAll("JAVA");

          //        p(_string1);        

          /*        StringBuffer buf = new StringBuffer();        

                     int i = 0;        

                     while(mm.find()) {            

                          i++;            

                         if(i%2 == 0) {                

                              mm.appendReplacement(buf, "****");            

                         }            

                         else {                

                              mm.appendReplacement(buf, "----");            

                         }        

                         }        

                         mm.appendTail(buf);                

                         p(buf);*/                    

                         //regular group (        

                            Pattern p2 = Pattern.compile("(\d{3,5})([a-z]{2})");        

                            Matcher m2 = p2.matcher("12345fg--5456uu-234cc-00");        

                            while(m2.find()) {            

                                   p(m2.group(2));        

                            }    

                           }        

                           public static void p(Object o) {        

                               System.out.println(o);    

                           }

  • 相关阅读:
    Crystal Reports 参考帮助信息
    五个寓言故事令你受益匪浅【来自:Chinabyte】
    设计五原则
    清除SQL日志
    SQL SERVER 2008 函数大全 字符串函数
    Java的内存管理与内存泄露
    Drawable和Bitmap的区别
    Java内存分配原理精讲
    周鸿祎:用户体验,简而未减
    Java编程中“为了性能”需做的26件事
  • 原文地址:https://www.cnblogs.com/zhangkefan/p/5443691.html
Copyright © 2020-2023  润新知