java学习笔记16(正则表达式)

正则表达式:

  定义:在pattern类中有简单规则定义,具有特殊含义的字符串;

  作用:用于一些字符串,比如验证注册邮箱,密码,用户名等;

  正则表达式的语法:

    1)字符:'\'反斜杠

          \t 代表制表符

          \n  换行

          \r   回车换行

    2)字符类:[abc] a或者b或者c

           [^abc] 否定abc

           [a-zA-Z] 范围:从小写a-z大写A-Z

           [0-9]  任意数字

           [0-9a-z_A-Z]  下滑线

    3)预定义字符类 : 任意字符

             \d   数字0-9

             \w   [0-9a-z_A-Z]

     4)边界匹配:^    代表的是行头

          $   代表的是结尾

          \b   单词的边界

    5)数量词:x?  x出现一次或一次没有

           x*  x出现任意次数

           x+  x至少出现一次

           x{n}  x出现的次数必须是n次

           x{n,m}  x最少出现n次,最多出现m次

          x{n,}最少n次,多了不限

正则相关练习:matches()方法

 

public class ZhengZe {
    public static void main(String[] args) {
        checkMail();
    }

    private static void checkMail() {
        String re="^[1-9][\\w]*@[a-zA-Z]*[\\.]+([\\w]{2,4})$";
        //[1-9]数字1-9开头,
        //[\\w]*任意次数[a-zA-Z0-9]
        //[a-zA-Z]任意次数
        //[\\.] .一次
        //[\\w]{2,4}   [a-zA-Z0-9]最少两次最多四次
        //$结尾
        String s="4587jfj@qq.com";//定义邮箱
        boolean b=s.matches(re);
        System.out.println(b);//true
        String s1="03jhdbf3@qq.com";
        boolean b1=s1.matches(re);
        System.out.println(b1);//false
        String s2="3345jkhf@qqcom";
        boolean b2=s2.matches(re);
        System.out.println(b2);//false    
    }
}

 

split方法:

public class SplitDemo {
    //split()方法:按照给定的正则表达式的匹配拆分字符串,返回值为String数组
    public static void main(String[] args) {
        Splitlx1();
    }

    private static void Splitlx1() {
        String s="i    love      java";
        String[] str=s.split(" +");//正则表达式:至少出现一次空格
        for (int i = 0; i < str.length; i++) {
            System.out.println(str[i]);
        }
        System.out.println(str.length);
    }
}
/*i
love
java
3*/

 replaceAll()方法:

public class ZhengZe1 {
    public static void main(String[] args) {
        replaceDemo();
    }
    private static void replaceDemo() {
        String s="I475love49578java";
        String s1=s.replaceAll("[\\d+]", "*");
        System.out.println(s1);//I***love*****java
        String s2=s.replaceAll("[\\d]+", "*");
        System.out.println(s2);//I*love*java
    }
}

 

posted @ 2019-03-19 16:26  Zs夏至  阅读(165)  评论(0)    收藏  举报