1 {}所需要的掌握的内容
{}表示重复的数量
{x}表示固定重复x个,
{x,y}固定重复最少x次,最多y次,
{x,}固定重复最少x次,最多不限制n+:表示{1,}
n*:表示{0,}
n?:表示{0,1}重复数量匹配时候,默认贪婪匹配,匹配最多,如果按最小匹配则在最后加个?
可以用做出现倍数的情况下,比如出现 3倍的长度 /(\w{3})+/
2 [ ] 是表达式,该中括号只占一个位,中括号里的范围中选取一个作为匹配值
3 ()需要掌握的内容
-
将连续的字符包裹起来,配合 或 来实现连续的表达式 如:(abc|bcd|efd) 匹配abc或者bcd或者efd
-
作为正向应用
如/ (\w)\1(\d)\2/,其中用()包括后,作为一个子表达式,后面的\1表示引用子表达式,这种一般用做连续一样的字符串匹配,\1表示对第一个\w作为连续匹配,\2表示对第2个\d做连续匹配,正向匹配后,如果用作替换里function()函数,可以作为参数,比如str.replace(reg,function($,$1, 2 ) ) , 其 中 2)),其中 2)),其中$表示匹配到的字符串,$1表示第一个子表达式匹配出来的字符串,KaTeX parse error: Undefined control sequence: \w at position 64: … var reg = /-(\̲w̲)/g; str.rep…,$1){return $1.toUpperCase()})
-
条件表达式-条件断言;
比如匹配后面是b的所有a字符,表示要匹配a字符串,但是要求a的后面有个b,b作为一个满足的条件,但是不能匹配出来,这里就要用()来把满足条件的表达式包裹起来
reg = /a(?=b)/
4 正则表达式的方法
- reg.test(str) 是否满足条件
- reg.exec(str) 使用游标来遍历字符串,返回的是一个对象.
注意必须要有g属性,同时注意lastIndex属性 - str.match(reg)返回一个数组,注意有g和无g的数组,
有g是全局匹配,返回的是匹配到的多个字符串的数组
无g是指匹配一次,返回的数组如下
5 属性i g m
i 忽略大小写
g 全局匹配
m 多行匹配(如果字符串中有\n换行符,则新换的一行从新匹配,尤其是以什么开头或结尾匹配的字符串时)