zoukankan      html  css  js  c++  java
  • 正则和字符串之间的关系梳理

    正则一直让人又爱又恨,因为使用正则能够快速方便的解决一些原本很复杂的问题。而正则用的最多也就是字符串的处理。他俩关系还真是有点暧昧复杂,让人傻傻有点搞不清楚,有必要进行梳理一番。

    正则常用的方法有:

    1、test:pattern.test(string); 返回true or false;

    2、exec:pattern.test(string);返回一个匹配信息的数组,没有匹配项返回null。

      PS:同一个字符串上多次调用始终返回第一个匹配信息。只有设置了(g)全局属性,才会返回下一个匹配项,直到字符串末尾。

        var pattern=/<(w+)(>)/g;
        var se=pattern.exec(str);
        var se1=pattern.exec(str);
        console.log(se)//[ "<tt>", "tt" ,">"]数组第一项是匹配项,第二项代表第一个捕获项
        console.log(se1)//[ "<rr>", "rr",">" ]数组第一项是匹配项,第二项代表第一个捕获项,第三项代表第二个捕获项

    字符串中可以使用正则的方法:

    1、match:只接受一个参数,与调用pattern.exec()本质上相同,返回同一个数组。

    var str='<tt><rr><rr/><ll><lt></lt><ll/><dd></dd><rr/><tt><tt/><rr><rr/>';
        var ss=str.match(/<w+>/);    //[ "<tt>" ]
        var sss=str.match(/<w+>/g);    //[ "<tt>", "<rr>", "<ll>", "<lt>", "<dd>", "<tt>", "<rr>" ]

    2、search:只接受一个参数,返回字符串中第一个匹配项的索引,没有找到返回-1

    var sea=str.search(/<w+>/);  //0
    var sea1=str.search(/<w+/>/);//8

    3、replace:

        var text="cat bat ut dat";
        var re=text.replace("at","11");//c11 bat ut dat
        var re1=text.replace(/at/g,"11");//c11 b11 ut d11
    
        var re2=text.replace(/(.a(t))/g, "$1$2") ;//catt batt ut datt
        
        function replaceText(text){
            return text.replace(/at/g,function(match,pos,originalText){
                console.log(match+" "+pos+" "+originalText);//要输出三次
            })
        }
        replaceText(text);
        //at 1 cat bat ut dat 
        //at 5 cat bat ut dat 
        //at 12 cat bat ut dat
        //最终结果是cundefined bundefined ut dundefined 
        //因为函数没有返回值,所以是undefined

    4、split:可以有第二个参数,表明返回的数组的长度

        var result=text.split(/s/);//[ "cat", "bat", "ut", "dat" ]
        var result1=text.split(/s/,2);//[ "cat", "bat"]    
  • 相关阅读:
    HTTPS之acme.sh申请证书
    GoAccess日志分析工具
    KVM之CPU虚拟化
    自动化运维之PSSH
    Hadoop+HBase 集群搭建
    SSH + Google Authenticator 安全加固
    查看数据的类型(python)
    在word中,替换多个词语。正则表达式中 [] {} 是可以连用的(python)
    方差分析的前提,与检验,以及球形检验
    清屏处理(汇编)
  • 原文地址:https://www.cnblogs.com/huansky/p/5876998.html
Copyright © 2011-2022 走看看