正则表达式
更详细的文档可参考正则文档
练习正则可使用正则测试网站
限定符
| 符号 | 备注 |
|---|---|
? | 字符出现0次或1次 |
* | 字符出现0次或n次 |
+ | 字符出现1次或n次 |
{n} | 字符出现n次 |
{n,m} | 字符出现n到m次 |
{n,} | 字符最少出现n次 |
{,m} | 字符最多出现m次 |
限定符只能查找单个字符出现的次数,如果要查找多个字符出现的次数可以使用
()包裹,例如:sh# abc出现1次或多次 (abc)+
元字符
| 符号 | 备注 |
|---|---|
| \d | 数字字符 |
| \w | 单词字符:英文数字及下划线 |
| \s | 空白符:包含换行符和tab |
| \D | 非数字字符 |
| \W | 非单词字符 |
| \S | 非空白符 |
| . | 任意字符:不包含换行符 |
| ^ | 匹配行首 |
| $ | 匹配行尾 |
| \b | 匹配单词边界 |
贪婪匹配与懒惰匹配
贪婪匹配会匹配尽可能多的字符,懒惰匹配则会匹配尽可能少的字符
js
let str='<div><span>123</span></div>'
let reg=/<.+>/g
let reg2=/<.+?>/g
console.log(str.match(reg)) //['<div><span>123</span></div>']
console.log(str.match(reg2)) // ['<div>', '<span>', '</span>', '</div>']