正则表达式

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);    

                       }

原文地址:https://www.cnblogs.com/zhangkefan/p/5443691.html