正则表达式

正则表达式介绍:

    1.什么是正则表达式?
        正则表达式实际上就是一串字符串,只不过这个字符串匹配了一定的规则。
    
    2.正则表达式的引入:
        qq号的校验规则:
            1.全部都是数字
            2.不能以0开头
            3.长度在5-12之间
        1.不使用正则表达式检验qq:
            public static boolean checkQQ(String qq) {
                //将字符串转换成字符数组
                char[] arr = qq.toCharArray();
                //遍历字符数组并进行判断
                for (char c : arr) {
                    //字符数组中有非数字元素,返回false
                    if (!(c >= '0' && c <= '9')) {
                        return false;
                    }
                }
                //如果以0开头,返回false
                if (qq.startsWith("0")) {
                    return false;
                }
                //长度判断
                int length = qq.length();
                if (length < 5 || length > 12) {
                    return false;
                }
                //代码执行到这里,说明符合qq号规则
                return true;

            }
        2.使用正则表达式进行校验:
            public class RegEx {
                public static void main(String[] args) {
                    Scanner scanner = new Scanner(System.in);
                    while (true){
                        System.out.println("请输入QQ号:");
                        String qq = scanner.nextLine();
                        
                        //使用正则表达式进行校验
                        String regex="[1-9]\\d{4,11}";
                        System.out.println("是否符合qq号规则:"+qq.matches(regex));
                        System.out.println("=========分割线===================");

                    }

                }
            }
        可以很明显的看出,使用正则表达式对字符串进行校验更加方便简洁。
        
    3.常用正则表达式的使用:
        1.字符类:注意[]只代表一个字符
            1. [abc]:代表a或者b,或者c字符中的一个。
            2. [^abc]:代表除a,b,c以外的任何字符。
            3. [a-z]:代表a-z的所有小写字符中的一个。
            4. [A-Z]:代表A-Z的所有大写字符中的一个。
            5. [0-9]:代表0-9之间的某一个数字字符。
            6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。
            7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。
            
        2.逻辑运算符:
            1. &&:并且
            2. | :或者
            
        3.预定义字符:注意'\'在使用的时候要使用两个'\\',因为要进行转义
            1. "." : 匹配任何字符。
            2. "\d":任何数字[0-9]的简写;
            3. "\D":任何非数字\[^0-9\]的简写;
            4. "\s": 空白字符:[ \t\n\x0B\f\r] 的简写
            5. "\S": 非空白字符:\[^\s\] 的简写
            6. "\w":单词字符:[a-zA-Z_0-9]的简写
            7. "\W":非单词字符:\[^\w\]
            
        4.数量词:'X'代表的是任意一个正则表达式
            1. X? : 0次或1次
            2. X* : 0次到多次
            3. X+ : 1次或多次
            4. X{n} : 恰好n次
            5. X{n,} : 至少n次
            6. X{n,m}: n到m次(n和m都是包含的)
            
        5.分组:使用()进行分组:
            (ab){3}:ab作为一组,重复出现三次;






            

 

posted @ 2020-05-05 09:13  moonlighter  阅读(183)  评论(0编辑  收藏  举报