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)

浙公网安备 33010602011771号