正则表达式(regexp)

正则表达式(regexp)

  • String str = "abcde";
    System.out.println( str.matches(".*ac.*"));
    
    //先编译正则表达式,编译好的表达式存放在变量p中
    Pattern p = Pattern.compile(".*ac.*");
    //用编译好的正则表达式匹配字符串,pattern调用matcher(),返回Matcher对象
    Matcher m = p.matcher("asdjjas");
    //Matcher类下有一个方法是用来判断是否匹配的
    boolean flag1 = m.matches();
    
  • [] 或

    • [a-m[p-z]]–>并集(或)
    • [a-z&&[m-v]]—>交集(且)
  • [^] 取反

  • “-” 区间

  • | 或

    • String str2 = "b";
      p( str2.matches("a|b|c"));
      
  • \\ 特殊符号:当需要匹配特殊符号时,需要使用""引导

  • \\d [0-9]

  • \\w [a-zA-Z_0-9]

  • \s 任意一个空格

  • ? 一个或没有

  • “+” 一个或多个

  • “*” 0个或多个

  • . 代表任意一个字符

  • {}

    • {n} : 代表有n个
    • {n,} : 代表至少有n个
    • {n, m} : 代表至少有n个,最多m个
  • “^” 边界: ^开始、$结束

    • Java的正则表达式是跟字符串完全比较,其他语言的正则表达式是字符串的子串匹配
  • split();

    String str = "asdsadafsf#fsdfsd#dfsdf#fsdff";
    String [] arr = str.split("#");
    for(String s:arr){
        System.out.println(s);
    }
    
  • Pattern p = Pattern.compile("[0-9]{4}");//将给定的正则表达式编译到模式中。
    String iphone = "12345678901";
    Matcher m = p.matcher(iphone);//将给定的字符串与此模式的匹配器进行匹配。
    
    //find():此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且
    //从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
    System.out.println( m.find() );//true
    System.out.println( m.find() );//true
    System.out.println( m.find() );//false
    System.out.println( m.find() );//false
    
    m.reset();//重置匹配器(指针重新指到开始的地方)
    System.out.println( m.find() );//true
    

你可能感兴趣的:(Java)