正则

基础

1 .str.match(reg)-- 返回匹配到的数组 str.replace()
2 .reg.test(str)--返回一个布尔值
3 .全局修饰符:i,g,m(多行匹配元素)u,y--还有许多其他的修饰符js不支持
4 .RegExp()构造函数可以动态创建新的正则。(注意里面的转义)--就算是使用字符串模板也还是需要调用构造函数来加工的,因为字符串模板得到的最后是字符串。

正则的几种形式

1 .普通字符:只能匹配自身的字符串
2 .特殊字符串:在regexp中必须使用转义字符 {。
3 .想要直接匹配的字母和数字,不需要使用反斜杠进行转义,当在正则中使用可以理解的反斜杠字符时,必须使用反斜杠转义。

简单字符

1 ./a[bcd]/ ab,ac,ad三种选择
2 ./a[^b]/ 除了ab的都算
3 ./[0-9a-zA-Z]/:范围匹配,仅指定起止符,中间使用-连接。遵循字符串编码原则,必须是按照字符编码排列时才能用这个方法。
4 ./ab[c-g][1-7]/ ab(c-g)(1-7)匹配四个字符。

预定义字符

1 .\w [a-zA-Z0-9]:单字符
2 .\W\ [^]:非单字符
3 .\s :空白符 str.replace()
4 .\S :非空白符
5 .\d:[0-9]:任意数字
6 .\D:[^0-9]:非数字

重复类数量词:允许用户定义字符重复匹配次数

1 .{n} 匹配前一项n次
2 . {n,m} 匹配前一个最少n,最多m次
3 . {n,} 匹配前一个最少n次,
4 .?={0,1}
5 .*={0,}
6 .+={1,}

高级匹配模式

贪婪模式

1 .在符合匹配条件的基础上尽可能的多占字符,而不是随意占用,越是排在左侧的重复匹配类匹配优先等级越高(可能和你想的不一样)

惰性匹配

1 .与贪婪匹配相反,体现了匹配的最小化原则,先查看字符串中的第一个值,如果第一个匹配,那么就立刻返回,否则就读入下一个字符串。实现效果 --只需要在重复类后面加上一个?。这个?必须在重复类后面。

支持匹配

1 .只尝试匹配整个字符串。如果整个字符串不能匹配,则自动放弃。在重复类后面加+号。

正则分组

1 .对于正则来说,一个小括号表示一个独立作用域,其匹配的内容将被独立存储,以数组的形式进行访问。
2 .分组后面也是可以使用任意的重复类量词。
3 .好处

1.当一个正则表达式成功的与目标字符串相匹配时,也可以从目标字符串中抽出与小括号中的子模式相匹配的部分。
2.$1,$2,对于正则表达式中的第一个括号,第二个括号的引用。
3.replace中常常用到,是RegExp对象的标识符。

正则的边界,确定字符串中的具体方位。

1 .^一行的开头
2 .$一行的末尾
3 .\b 匹配一个词语的边界 [\b]匹配的是退格符
4 .\B 匹配非词语标记

regexp对象的实例属性

1 .lastIndex:下一次匹配的位置,这个例外,可以改
2 .source:返回正则匹配的源字符串文本。

你可能感兴趣的:(正则)