正则表达式

Posted lyle-liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

正则表达式介绍:

    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": 空白字符:[ 	
x0Bf
] 的简写
            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作为一组,重复出现三次;






            

 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式