美文网首页
正则表达式 Java 入门二

正则表达式 Java 入门二

作者: CNSTT | 来源:发表于2018-11-28 17:43 被阅读0次

    前言:

    在正则表达式中,[] () {} 区分各自的使用场景

    1、方括号 [ ]

    [] 定义匹配的某一个字符范围

    String str = "abcdefghijk";      //源字符串
    
    模式:[a-c]        //表示字符范围是a、b、c中任意一个字符
    String newstr = str.replaceAll("[a-c]", "");
    System.out.println(newstr); 
    输出:defghijkl
    
    模式:[a-c[f-i]]        //表示字符范围是a~c或f~i的字符(并集运算)
    String newstr = str.replaceAll("[a-c]", "");
    输出:  dejkl
    
    模式:[a-g&&[c-i]]        //表示字符范围是a~g和c~i共有的字符(交集运算)
    String newstr = str.replaceAll("[a-g&&[c-i]]", "");    //即替换c、d、e、f、g、h、i
    输出:  abhijkl
    
    模式:[^cfghi]        //表示字符范围是^除了cfg的任意字符
    String newstr = str.replaceAll("[^cfghi]", "");    //即替换a、b、d、e、j、k
    输出:  cfghi
    

    2、花括号 { }

    {} 定义字符出现的次数

    模式:a?        //表示字符中出现'a'  0次或1次
    System.out.println(Pattern.matches("a?", "aa")); 
    输出:  false
    
    模式:a*        //表示字符中出现'a'  0次或n次
    System.out.println(Pattern.matches("a*", "aaa"));    
    输出:  true
    
    模式:a+        //表示字符中出现'a'  1次或n次
    System.out.println(Pattern.matches("a+", ""));    
    输出:  false
    
    模式:a{n}        //表示字符中正好出现'a'  n次
    System.out.println(Pattern.matches("a{3}", "aaa"));    
    输出:  true
    
    模式:a{n,}        //表示字符中至少出现'a'  n次 包含n
    System.out.println(Pattern.matches("a{3,}", "aa"));     
    输出:  false
    
    模式:a{n,m}        //表示字符中出现'a'  n-m次
    System.out.println(Pattern.matches("a{3,5}", "aaaaa"));    
    输出:  true
    

    3、圆括号 ( )

    () 为了提取匹配字符串的,括号内的当做一组来处理。

    模式:(a|b|c)        //表示字符为a或者b或者c
    System.out.println(Pattern.matches("(com|net|cn)", "com"));
    输出:  true
    

    相关文章

      网友评论

          本文标题:正则表达式 Java 入门二

          本文链接:https://www.haomeiwen.com/subject/jizbqqtx.html