如何理解正则/匹配过程

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

首先要说下正则表达式的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"))

有空再编辑...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 9,520评论 0 20
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • 转自: JS正则表达式一条龙讲解,从原理和语法到JS正则、ES6正则扩展,最后再到正则实践思路 温馨提示:文章很长...
    前端渣渣阅读 5,798评论 1 32
  • [认知升级最重要的工具是什么?2017.05.22留言] 知识变现,从来就不是一个新名词,其实每一个赚到钱的人,都...
    早知今日阅读 1,560评论 0 1
  • 本系列的第一本书,总结完结。下周开始本系列第二本... Values & Types JavaScript has...
    竹剑道阅读 1,391评论 0 0