美文网首页
如何理解正则/匹配过程

如何理解正则/匹配过程

作者: 老4 | 来源:发表于2016-02-26 14:13 被阅读48次

    在网上看了正则教程之后,感觉还是晕晕的?把这个文档看完,再把其中的例子实验一遍,你就能看懂并写出大部分的正则表示式了。

    首先要说下正则表达式的4个属性:
    i:不区分大小写
    g:全局匹配
    m:使“^"、"$”可匹配每一行
    s:是小数点.可匹配所有字符包括换行符

    这里用js的正则来演示


    例子1:基础匹配

    str = '1a2b3c';
    find = /\d/g;
    m = str.match(find); 
    

    m的值

    array(
        "1",
        "2",
        "3"
    )
    

    解析:
    这里find是一个数字

    1. 用find去str中第一个字符开始比较,每次指针前进一个字符,找到第一个数字1
      此时str指针的位置'1|a2b3c'
      此时的匹配结果的结果:array("1")
    2. 因为g为全局匹配,所以重复第一步继续比较(从a开始),找到第二数字2
      此时str指针的位结果:'1a2|b3c'
      此时的匹配结果出的值array("1","2")
    3. 因为g为全局匹配,所以重复第一步继续比较(从b开始),找到第三数字3
      此时str指针的位置'1a2b3|c'
      此时的匹配结果出的结果:array("1","2","3"))
    4. 因为g为全局匹配,所以重复第一步继续比较(从c开始),一直找到字符串末尾也没有数字
      最终匹配结果就是:array("1","2","3"))

    有空再编辑...

    相关文章

      网友评论

          本文标题:如何理解正则/匹配过程

          本文链接:https://www.haomeiwen.com/subject/zkiikttx.html