正则表达式常用语法
2021-04-05 本文已影响0人
水煮鱼又失败了
将正则表达式中常用的通用语法
整理成思维导图,供平时参考查看。
在线思维导图地址:https://www.processon.com/view/link/606824a6e401fd13004ef2a3
密码:9vKN
画图花费的时间太长,实在没时间整理成文档了,主要还是看图,有时间再整理具体文档。
正则表达式和markdown的关键字有不少冲突,这里粘贴部分规则:
限定符语法规则
语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次货更多次 |
{n,m} | 重复n次到m次 |
懒惰限定符
语法 | 说明 |
---|---|
*? | 重复任意次,尽可能少匹配 |
+? | 重复1次或更多次,尽可能少匹配 |
?? | 重复0次或1次,尽可能少匹配 |
{n,m}? | 重复n次到m次,尽可能少匹配 |
{n,}? | 重复n次以上,尽可能少匹配 |
零宽断言
代码 | 说明 | 举例 |
---|---|---|
xxx(?=yyy) | 先行断言,匹配"后面满足条件yyy"的条件"xxx" | "123(?=a)",匹配后面是a的123 |
(?<=yyy)xxx | 后发断言,匹配"前面满足条件yyy"的条件"xxx" | "(?<=a)123",匹配前面是a的123 |
xxx(?!yyy) | 先行断言,匹配"后面不满足条件yyy"的条件"xxx" | "123(?!a)",匹配后面不是a的123 |
(?<!yyy)xxx | 后发断言,匹配"前面不满足条件yyy"的条件"xxx" | "(?<!a)123",匹配前面不是a的123 |