和第一章括号一样,元字符也是代表着一位。那为什么会有元字符的产生呢,因为从第一章中我们知道尽管有“-”的帮助,我们仍然需要在括号里面罗列太多我们想想要的值,以及一写特殊含义的值也没法表示。
元字符
常见的
元字符 | 用括号等价表示 | 备注 |
\w | [0-9A-z] | 单词字符 |
\W | [^\w] | 非单词字符 |
\d | [0-9] | 数字 |
\D | [^\d] | 非数字字符 |
\s | [\t\n\r\v\f] | 空白字符 |
\S | [^\s] | 非空白字符 |
\b | 单词边界 | |
\B | 非单词边界 | |
. | [^\r\n] | 单个字符,除了换行和行结束符 |
不常用的
元字符 | 备注 |
\t | 制表符 |
\n | 换行符 |
\r | 回车 |
\v | 垂直制表符 |
\f | 换页符 |
详情见https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
练习
题目:匹配下面句子中的cat单词
const str = 'I am a cat, do not catch me' // 不能匹配catch里面的cat哦
const reg = /\bcat\b/
str.match(reg) // ["cat"]
题目: 匹配所有的位
const str = 'abcdefg'
const reg = /[\s\S]/g
str.match(reg) // ["a", "b", "c", "d", "e", "f"]
解析:哈哈是不是脑洞有点大,同理的/[\d\D]/g也是可以的哦!