js-权威指南学习笔记10

第十章 正则表达式的模式匹配

1、正则表达式是一个描述字符模式的对象

2、可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多是通过一种特殊的直接量语法来创建。

3、程序运行时每次遇到对象直接量,如{}[]的时候都会创建新对象

4、正则表达式中的所有字母和数字都是按照字面含义进行匹配的。

5、许多标点符号具有特殊含义,在正则表达式中使用这些字符的直接量进行匹配,必须进行转义

6、将直接量字符单独放进方括号内就组成了字符类,一个字符类可以匹配它所包含的任意字符。定义否定字符类时,将一个^符号作为左方括号内的第一个字符

7、正则模式之后跟随用以指定字符重复的标记。

8、非贪婪匹配,在待匹配的字符后跟随一个问号即可。正则表达式的模式匹配总是会寻找字符串中第一个可能匹配的位置。所以/a+?b/匹配aaab时和贪婪匹配一样返回aaab。

9、正则表达式中的圆括号有多种作用。一个作用是把单独的项组合成子表达式,以便可以像处理一个独立的单元那样用|、*、+、?等来对单元内的项进行处理另一个作用是在完整的模式种定义子模式,当一个正则表达式成功和目标字符串相匹配时,可以从目标串中抽出和圆括号中的子模式相匹配的部分

10、表示单词边界。

11、(?=表达式)是一个先行断言,用以说明圆括号内的表达式必须正确匹配,但是并不是真正意义上的匹配

12、(?!表达式)是一个负向先行断言,表示表达式不匹配。

13、String支持四种使用正则表达式的方法,search()、replace()、match()(match()即使不是全局检索,也返回数组)、split()

14、调用exec()的正则表达式对象具有修饰符g时,它将把当前正则表达式对象的lastIndex属性设置为紧挨着匹配字串的字符位置,当同一个正则表达式第二次调用exec()时,他将从lastIndex属性所指示的字符处开始检索

原文地址:https://www.cnblogs.com/zczhangcui/p/6293515.html