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)