regex

正则表达式

1.基本匹配

​ 直接格式为“匹配内容”


2.元字符

描述 元字符
. 句号匹配任意单个字符(除了换行符)
[] 匹配方括号内的任意字符
[^] 排除种类
* 匹配多次在*之前的字符,允许匹配不到
+ 匹配多次在+之前的字符,至少匹配一次,用于限定字符前缀(或后缀)
匹配0或1次在?之前的字符,用于选定某规则的出现与否
量词,圈定匹配数目的最大值与最小值,只有一个数字时表示匹配固定次数,另外,{2,}表示最少两次
(xyz) 特征标群(就是括号,看作一个整体)
| 或运算符
\ 转义符
^ 锚点,指定项位于某匹配项开头
$ 匹配项位于某字符串结尾(放在匹配项后面)

3.简写字符集

常用字符集如下:

简写 描述
. 除换行符外所有字符
\w 所有(字母数字加下划线),即[a-zA-Z0-9_]
\W 所有非(字母数字),即符号
\d 数字
\D 非数字,即[ ^\d]
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\v 垂直制表符
\p DOS行终止符,CR/CF(等同于\r\n)
\s 所有空格字符[\t\n\f\r\p]
\S 所有非空格字符

4.零宽度断言

先行断言用于判断所匹配的格式是否在另一个确定的格式之前, 匹配结果不包含该确定格式(仅作为约束).

零宽度断言如下:

符号 描述
?= 正先行断言-存在
?! 负先行断言-排除
?<= 正后发断言-存在
?<! 负后发断言-排除

正先行断言 ? = ...

表示第一部分后必须跟着 ? = ... 定义的表达式,返回结果只包含满足匹配条件的第一部分表达式

负先行断言 ? ! ...

表示第一部分后不跟对断言所定义的格式

正后发断言 ? < = ...

表示其前跟随断言中定义的格式

负后发断言 ? < ! ...

表示其前不跟随断言中定义的格式

5.标志

即模式修正符,用来对表达式的搜索结果进行修正

标志 描述
i 忽略大小写
g 全局搜索
m 多行修饰符,与^和$相对应

6.贪婪匹配与惰性匹配

即使用?佳能贪婪匹配转化为惰性匹配

(.at) ==> (.?at)

Github参考文档

正则在线测试

正则可视化

正则分析教程

posted @ 2020-10-22 15:56  zaliasc  阅读(175)  评论(0编辑  收藏  举报