正则表达式
1. 限制数量
说明
当某个字符集合前后各有字符时,则该字符集合就被限制了数量为1,如需要不被数量限制可在字符集后面加上量词。
范例
匹配<123456789>"<>"内的数字的个数不等。写一个正则匹配。
错误示例
1 | const reg = /<[\\d]>/g |
解释:这样写貌似看着没有问题。但是实际上由于[\d]前后有字符"<"和">"所以说限制了[\d]只能匹配到一个,所以下面这个示例才是可以的
正确示例
1 | const reg = /<[\\d]+>/g |
解释:给[\d]加上了量词 * 即可以匹配[\d] 0到多次。且匹配的次数越多优先级越高。
2. 量词(惰性匹配和贪婪匹配)
说明
量词也称为重复,一般形式为{m,n} * + 等。
示例
将字符串<h1>你好</h1><div>你好</div><p>你好</p><span>你好</span>这个html字符串中所有的非p标签,替换为p标签
错误示例
1 | const reg = /<\\/?.*>/g |
解释:因为要匹配的字符串的开头和结尾都符合咱们写的正则的匹配要求,如:<h1>你好</h1><div>你好</div><p>你好</p><span>你好</span>。默认是贪婪匹配的,即能一次性的匹配越多越好。所以最大的字符串被匹配了出来
正确示例
1 | const reg = /<\\/?.*?>/g |
解释:因为“/<\/?.*?>/g”加了?之后就变成了懒惰匹配即一次能匹配的越少越好。所以就匹配出了里面的每一项标签
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Miang Blog!