JS正则表达式-基础(一)
正则表达式是匹配模式,要么匹配字符,要么匹配位置
1.两种模糊匹配模式
在正则表达式中如果都是精准匹配,那么正则表达式也不会这么受大众的追捧
最重要的是它可以模糊匹配,而模糊匹配又分两种
- 横向模糊匹配(不固定长度)
- 纵向模糊匹配(固定长度)
①横向模糊匹配
— 什么是横向模糊匹配?
**解释:**简单来说,一个正则可匹配的字符串的长度不是固定的,可以是多种情况的。
举例:规则/ab{2,5}c/
它是以a
开头c
结尾,但中间会匹配b
,{2,5}==2到5个
可视化如下:
②纵向模糊匹配
— 什么是纵向模糊匹配?
**解释:**一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种 可能。
也就是说,你的匹配规则长度其实是固定的,但是到了某个字符的时候不确定他是否是固定的。
举例:匹配/a[123]b/
其中[123]
所表示的是可以匹配到1
,2
,3
中的其中一个
const reg = /a[123]b/
const string = 'a12b a1b a2b a3b a234b'
console.log(string.match(reg));
// 输出的结果:a1b,a2b,a3b
在其中a12b
看似符合,但规则只允许有一个值,所有不能匹配到。可视化如下:
总结:这两种匹配模式其实就可以涵盖正则表达式的规则模式,可以抽象的理解为,横向是在二维平面空间上x轴的延申,纵向是y轴的延申