• 技术文章 >后端开发 >php教程

    正则知识点

    小云云小云云2017-12-08 15:12:54原创750
    正则表达式,又称规则表达式,计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

    许多程序设计语言都支持利用正则表达式进行字符串操作。

    正则的两种写法:

    第一种(标准写法):
    new RegExp(规则,修饰符);

    第二种(简写):
    /规则/

    • d:一个数字

    • D:一个非数字

    • w:一个数字、字母、下划线

    • W:一个非数字、字母、下划线

    • n:换行

    • s:空格

    • S:非空格

    • b:边界符

    • .:任意字符除了n

    • []:在中括号里任意选择一个字符。

    • [^]:排除

    • {}:量词范围

    • {0,1}/?:最小可以没有最大1个

    • {0,}/*:最小没有,最大无限

    • {1,}/+:最小1个,最大无限

    • {n}:固定的次数

    • 修饰符:i -> 忽略大小写。

    • 转义符:\

    正则的方法-text

    test:检测是否正则匹配的内容,如果正则成立那么返回一个布尔值。

    • 正则.test(string);

        var str = 'RegExp';
        var re = new RegExp('p','i');
        console.log(re.test(str));

    字符串方法-match

    match:将匹配到的字符放到一个数组中。

    string.match(正则);

    当匹配到的字符只有一个的时候,会显示出多个属性

    index: 匹配字符的位置

    input: 所有内容

    而length为1

    • match如果找不到返回null

        var str = 'das37213dsa321hjkh321321';
        console.log(str.match(/\d+/g))

    字符串的方法-search

    search:找到(可以指定也可以正则匹配)匹配的字符位置。

    sting.search(字符串||正则);

        var str = 'aacabca523c';
        console.log(str.search(/\d/));
    • search如果找不到返回-1

    字符串方法-replace

    replace:replace

    string.replace(要替换谁||可以用正则,替换成什么||函数);

    返回值为替换好的字符串。

    注意:
    如果使用函数,那么一定要有retrun,不然为undefind

    一般情况下

    函数内的第一个参数是当前匹配的字符。

    函数内的第二个参数是当前匹配的索引值。

    函数内的第三个参数是当前总的字符串。

    函数内的第四个以后参数都为undefined。

        var str = '中国共产党,习近平总书记说:“法轮功是邪教!”';
        str.replace(/中国共产党|习近平|法轮功|邪教/g,function($0,$1,$2,$3,$4){
            console.log($0,$1,$2,$3,$4);
        });

    子项 - ()

    从左往右数

    如果正则中有子项

    从函数的第一个参数之后就是匹配到的子项值,
    当参数的个数等于子项个数+1的时候,之后都为正常模式下的参数了(比如:索引,整个字符,undefined..)

        var str = '2017/2/17';
        var str = str.replace(/(\d+)\D+(\d+)\D+(\d+)/,function($0,$1,$2,$3){
            //console.log($1,$2,$3);
            return $1 + '年' + $2 + '月' + $3 + '日';
        });
        
        console.log(str);

    子项重定向

        var str = 'ssssssssaaaaaabbbbbb';
        str.replace(/(\w)\1+/g,function($0,$1){
            console.log($1);
        });


    正则的两种写法:

    第一种(标准写法):
    new RegExp(规则,修饰符);

    第二种(简写):
    /规则/

    • d:一个数字

    • D:一个非数字

    • w:一个数字、字母、下划线

    • W:一个非数字、字母、下划线

    • n:换行

    • s:空格

    • S:非空格

    • b:边界符

    • .:任意字符除了n

    • []:在中括号里任意选择一个字符。

    • [^]:排除

    • {}:量词范围

    • {0,1}/?:最小可以没有最大1个

    • {0,}/*:最小没有,最大无限

    • {1,}/+:最小1个,最大无限

    • {n}:固定的次数

    • 修饰符:i -> 忽略大小写。

    • 转义符:\

    正则的方法-text

    test:检测是否正则匹配的内容,如果正则成立那么返回一个布尔值。

    • 正则.test(string);

        var str = 'RegExp';
        var re = new RegExp('p','i');
        console.log(re.test(str));

    字符串方法-match

    match:将匹配到的字符放到一个数组中。

    string.match(正则);

    当匹配到的字符只有一个的时候,会显示出多个属性

    index: 匹配字符的位置

    input: 所有内容

    而length为1

    • match如果找不到返回null

        var str = 'das37213dsa321hjkh321321';
        console.log(str.match(/\d+/g))

    字符串的方法-search

    search:找到(可以指定也可以正则匹配)匹配的字符位置。

    sting.search(字符串||正则);

        var str = 'aacabca523c';
        console.log(str.search(/\d/));
    • search如果找不到返回-1

    字符串方法-replace

    replace:replace

    string.replace(要替换谁||可以用正则,替换成什么||函数);

    返回值为替换好的字符串。

    注意:
    如果使用函数,那么一定要有retrun,不然为undefind

    一般情况下

    函数内的第一个参数是当前匹配的字符。

    函数内的第二个参数是当前匹配的索引值。

    函数内的第三个参数是当前总的字符串。

    函数内的第四个以后参数都为undefined。

        var str = '中国共产党,习近平总书记说:“法轮功是邪教!”';
        str.replace(/中国共产党|习近平|法轮功|邪教/g,function($0,$1,$2,$3,$4){
            console.log($0,$1,$2,$3,$4);
        });

    子项 - ()

    从左往右数

    如果正则中有子项

    从函数的第一个参数之后就是匹配到的子项值,
    当参数的个数等于子项个数+1的时候,之后都为正常模式下的参数了(比如:索引,整个字符,undefined..)

        var str = '2017/2/17';
        var str = str.replace(/(\d+)\D+(\d+)\D+(\d+)/,function($0,$1,$2,$3){
            //console.log($1,$2,$3);
            return $1 + '年' + $2 + '月' + $3 + '日';
        });
        
        console.log(str);

    子项重定向

        var str = 'ssssssssaaaaaabbbbbb';
        str.replace(/(\w)\1+/g,function($0,$1){
            console.log($1);
        });

    相关推荐:

    最全的前端常用正则表达式汇总

    正则表达式的的实现步骤

    php正则表达式入门详解

    以上就是正则知识点的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:知识点 正则
    上一篇:MongoDB中MapReduce使用 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文带你了解PHP中的文件与目录操作• PHP编译器BPC6.0已发布,聊聊有哪些新功能吧!• 汇总有关PHP多进程开发面试常见问题(附答案)• 验证码的使用• php 无极分类(递归)实现代码_php技巧
    1/1

    PHP中文网