正则表达式

Posted afanadmin

tags:

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

一个小案例:为何要学习正则

{
    let str = "asldkfjal123s23sdfs11";
    let arr = [];
    // 找到所有的数字,并且放在一个数组里面[123,23,11];
    {
        function getNumber(str) {
            let arr = [];
            let temp = "";
            for (let i = 0; i < str.length; i++) {
                if (!isNaN(str[i])) {
                    temp += str[i];
                } else {
                    if (temp !== "")
                        arr.push(parseInt(temp));
                    temp = "";
                }
            }
            if (temp !== "") {
                arr.push(parseInt(temp));
                temp = "";
            }
            return arr;
        }
        // console.log(getNumber(str));
    }
    {
        // 正则匹配如下:
        let reg = /d+/g;
        let arr = str.match(reg);
        // console.log(arr);
    }
}

正则表达式的两种创建方式

{
    /* 
        正则的创建
    */
    // 两种创建方式
    {
        // 1.字面量创建
        // 两个杠直线就是 正则表达式里面的内容;
        // /g 全局匹配,找到结果之后继续查找 -> 默认的reg是查找到一个就停止查找;
        // + 一次或者多次 -> 1次以上
        {
            // d 模糊匹配
            let str = "abc135778sdsdf31";
            let reg = /d+/g;
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 精确匹配 : 一般情况下,精确匹配是比较少的..
            let str = "abc135778sdsdf31";
            let reg = /abc/g;
            // 注: abc只能是字符串 在字面量中不能是变量
            let res = str.match(reg);
            // console.log(res);
        }
    }
    {
        // 2.构造函数创建
        // 两个参数 1.正则表达式内容 2.修饰符
        // 1.带的需要多层转义 -> d \d
        {
            // 模糊匹配
            let str = "abc135778sdsdf31";
            let reg = new RegExp("\d+", "g");
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 精确匹配
            let str = "abc135778sdsdf31";
            let reg = new RegExp("abc", "g");
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 变量匹配
            let str = "abc135778sdsdf31";
            let abc = "1357"
            let reg = new RegExp(abc, "g");
            let res = str.match(reg);
            // console.log(res);
        }
    }
}

 

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

markdown 正则表达式模式片段

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

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

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

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

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