正则表达式

Posted wangjingzhi

tags:

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

创建正则表达式:

    字面量创建: var reg = /a/g;

    构造函数创建: var reg = new RegExp("a","g");

 

修饰符:

    i :  不区分大小写   g:  全局 从头查找   m:  多行匹配

 

正则方法:

    test(): 判断是否满足正则,不满足返回false

    exec(): 查找字符串是否满足正则,返回 一个数组,这个数组只有一个元素,包括几个属性:分别是群组,索引,字符串自身

 

字符串中的方法:

    replace() :  第一个参数为正则,第二个可以是字符串,也可是函数。将正则匹配的内容替换后面一个参数的内容

    mach():  参数为正则,返回匹配正则的数组,没有为null,如果有群组,但是不加全局,则会会返回找到的元素外,还会返回群组的元素

    search(): 返回第一个匹配项的索引,没有返回-1

    splict(): 第一个参数可以是字符串,也可以是正则 第二个参数可选,匹配个数

 

元字符:

    .    :  可以匹配任意一个字符

    ^  : 在  [  ]  中第一位使用^,表示^除了后面所有的字符都满足,不是第一位表示字符^

    w : [a-zA-Z0-9_]

    W : [^a-zA-Z0-9_]

    s  : 空白字符(空格)

    S  : 非空白字符

       : 换行

        : 回车

 

重复: 

   {n,m} :贪婪匹配,先匹配最大的

   {0}  :表示空字符 

   ? : {0,1}

    +  : {1,}

    *  :  {0,}

    /  a {2,5} ?  /        在匹配后面加? 表示非贪婪匹配 例如 .+?  或者 .*?

 

起始、结束:

  ^$  

 

群组:

  

1         var str="18617891076".match(/(d{3})(d{4})(d{4})/).slice(1).reduce(function(value,item,index){
2 
3             return index===1 ? value+"****" : value+item;
4 
5         })

可以简写为:

        var str="18617891076".replace(/(d{3})(d{4})(d{4})/,"$1****$3");
        console.log(str);

断言:

  ?<=  前置等于  ?<! 前置不等于    ?= 后置等于  ?! 后置不等于

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

markdown 正则表达式模式片段

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

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

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

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

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