正则表达式学习——基础篇

主要是和极客时间的涂伟忠老师《正则表达式入门课》开始学习正则表达式

正则表达式测试网站,当然,浏览器的话直接f12也可以顺利上手

vscode 选中对应的按钮,也可以开启正则表达式匹配、替换的功能

1、基本元字符

  1. .)点表示换行以外的任意单个字符
  2. \d  表示任意单个数字
  3. \w 表示任意单个数字或字母或下划线
  4. \s 表示任意单个空白符
  5. \D  和 \d  取反
  6. \W 和 \w 取反
  7. \S  和 \s 取反
  8. \r 回车符
  9. \n 换行符

在前端领域,更多出现的,还是 \n

d 是 digit 数字
w 是 word 单词
s 是 space 空白

2、量词,也就是出现的次数

  1.  *  表示出现 0 —— 多次
  2.  +  表示出现 1 —— 多次
  3.  ?  表示 0—1 次,也就是 有或者没有 都可以
  4. {m} 表示 出现 m 次
  5. {m, } 表示出现 m —— 多次
  6. {m, n} 表示出现 m —— n 次

所以 类似于  rgba? 的话,能同时 匹配 rgba 和 rgb

3、范围

  1. 表示或者,(1|2|3|4|5|6)
  2. [] 从中括号中选择,可以理解为里面的每一个字符都是 或, 而 常用的 0-9  a-z 则是 通过 ASCII 码进行范围匹配
  3. [^] 括号中的第一个字符为 ^ 的时候,表示为 非,里面的所有字符都被排除
  4. () 某一个群组,或者集合

 

4、查找

有了前面的基础,其实就可以进行一些简单的查找了

例如后端很糟糕的给了一个 日期: 20200202,想要获取里面的年月日,一开始只会使用 slice 来切割字符串

/(\d{4})(\d{2})(\d{2})/ 

  1. 这里使用了 () 来对正则进行分组,分成了三组
  2. 第一组是四个数字,第二组和第三组是两个数字

更近一步,就是进行命名分组了

命名分组的格式为(?P<分组名>正则)

/(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})/

这里对每一个组都进行了命名

当然,除了 es6 新出的 exec 外,还有 其他的方法来获取提取出来的字符

RegExp.$1  第一个匹配的字符

RegExp.$2  第二个匹配的字符

以此类推

5、修饰符

  1.  /i  忽略大小写
  2.  /g 全局匹配
  3.  /s  使得 .可以匹配任意单个字符,包括换行符
  4.  /m 匹配多行
  5.   /u 匹配 unicode
  6.   /y 粘连匹配

其实这里的 修饰符都要到 es2018 才完善

`<head>
    <title>学习正则</title>
</head>`

例如想要匹配 head 标签中的内容就需要 /s

/<head>(.*)<\/head>/s

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值