从零开始学正则(五)
壹 ❀ 引 我在 从零开始学正则(四) 一文中讲述了正则匹配的回溯法,以正则匹配过程引出了正则书写也会存在性能问题,并阐述了贪婪匹配,惰性匹配以及分支匹配时与回溯的中中关系。当然,对于初学者而言除了能写出正则以外,能读懂任意一段正则也是非常重要的。那么本篇文章主要针对正则表达式拆分展开分析,相信大家在阅读之后再面对各种变态长度的正则时,都能有理可据,化繁为简的拆分理解。 说在前面,正则学习系列文章均为我阅读 老姚《JavaScript正则迷你书》 的读书笔记,文中所有正则图解均使用 regulex 制作。那么本文开始! 贰 ❀ 正则的解构与操作符 编程语言一般都有操作符( 百科 ),但只要说到操作符就不得不讨论操作符的优先级,因为一堆操作符在一起,系统自己也得知道谁该先执行,谁要后执行。 那么正则中的操作符是什么呢?正则中的操作符体现在正则结构中,而结构又由特殊字符与普通字符构成。 JavaScript中的正则结构大致有这些: 字符字面量、字符组、量词、锚、分组、分支、反向引用 。也就是前几章节讲过的知识点, 我们简单复习一遍: 字符字面量: 当我们具体匹配某个字符时所写的正则字段,比如a匹配字段“a”,123匹配字段“123”,\. 匹配小数点等。 字符组: 当某个位置的字符可能是多种情况之一时,比如匹配任意一个数字,可以使用字符组[0-9],可简写为\d。除此之外还有反义字符组