【全】正则表达式语法

简单来说,正则表达式就是描述字符串的规则,其作用如下:
1、校验数据的有效性;
2、从文本中提取内容;
3、文本内容替换;

元字符

元字符即正则表达式中具有特殊含义的专用字符,主要分为5类。

1、基础

- . 任意字符(换行除外)
- \d 任意数字
- \D 任意非数字
- \w 任意数字字母下划线
- \W 数字字母下划线以外的任意字符
- \s 任意空白符
- \S 任意非空白符

2、空白符

- \r 回车符
- \n 换行符
- \f 换页符
- \t 制表符
- \v 垂直制表符

3、量词

- *含义:0到多次
- +含义:1到多次
- ?含义:01次,如colou?r
- {m}含义:出现m次
- {m,n}含义:m到n次,
- {,n} 其中m不写代表0,至多n次
- {m,} 其中n不写代表无穷大,至少m次

4、范围

- | 或,如ab|bc代表ab或bc
- [...]多选一,括号中任意单个元素
- [a-z]匹配a到z之间任意单个元素(按ASCII表,包含a,z)
- [^...]取反,不能是括号中的任意单个元素

5、边界

- ^ 匹配行的开始,多行模式时,可以匹配任意行开头
- $ 匹配行的结束,多行模式时,可以匹配任意行结尾
- \b 匹配单词边界
- \A 仅匹配整个字符串的开始,不支持多行模式
- \Z 仅匹配整个字符串的结束,不支持多行模式

二、贪婪与非贪婪

1、贪婪:正则表达式中,表示次数的量词默认是贪婪的,默认尽可能多的去匹配
2、非贪婪: “数量”元字符后加?(英文问号)找出长度最小且满足要求的

三、环视

环视就是在我们给定的规则前或者规则后加一些限制:

- X(?<=Y) 匹配前面是YX
- X(?<!Y) 匹配前面不是YX
- X(?=Y) 匹配后面是YX
- X(?!Y) 匹配后面不是YX

四、子组

- (正则)将regex保存成一个子组
- (?P<name>正则)命名子组,将regex保存成名称为name的子组
- (?:正则)仅分组,不保存这个子组
- \分组编号 重复某个子组

示例:

const codepattern = /{% *(\S+?)(?: *| +.+?)%}[\s\S]+?{% *end\1 *%}/g;
// 匹配代码块 {% ... %}

参考资料

推荐学习网站: https://regex101.com

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值