思维转换
正则表达式以单个字符为单元
排除性字符组
[]这种形式称为字符组
q[^u] 匹配q后面不是u的 aq 不可以被匹配 【[^u]也需要匹配字符】
这里的 | 是多余的 [a|e] --》 [ae] 这使得 | 是一个普通字符,没有语义
字符组
[-ghs]
[omh^]
[./\sd]
[sh|d]
[a$a]
这时他们都是字符,没有语义
有语义的只有这几种情况
[a-z]
[^a]
[a $] (中间没有空格)
多选结构和字符组
区别在是匹配单个还是多个
多选结构子表达式可以匹配单个也可以匹配多个
演变成
忽略大小写 i
总结表
研究一下 < > 是啥
可选项
var re2 = "semicolon"
var reg = /colou?r/
console.log(re2.match(reg))
因为后后面错了
划重点******![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/57856b9a4c84e30af529d2c486cd03c4.png)
划重点******## ?的作用对象可以是 () ,这个是之前没见过的![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1a6111752c16e900801d3896df4e8b0f.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/59be541d46b53a00ebbb15ed08e020a7.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e7e34314edeaa32ad459610fcb437db3.png)
…? ?在最后是无法失败
.* 也是无法失败
匹配标签
<HR*+SIZE.=.[0-9]+.*>
匹配这种
<HR(.*+SIZE.*=.*[0-9]+)?.*>