通用正则表达式汇总
介绍
正则表达式提供强大的查找和替换功能,绝大部分语言(C#、Python、Java等)及大多数工具(Notepad++、VsCode、Vs等)都提供内部支持。
分类
- 单字符匹配(Single Match):用来匹配单个字符;
- 字符集匹配(Sets Match):用来匹配多个字符;
- 特殊字符匹配(Special Match):此处代指转义字符;
- 空白字符匹配(Whitespace Match):包含换行符、Tab字符等;
- 字符类型匹配(Type Match):用来匹配字母、数字、空白字符等;
- 重复匹配(Repeat Match):用来匹配零次、一次、多次等;
- 位置匹配(Position Match):用来匹配字母、字符边界位置;
- 子表达式匹配高级(Subexpression Match):用来提供分组匹配;
- 反向引用匹配高级(Backreference Match):同时搭配子表达式匹配,可提供强大的替换功能;
- 前后匹配高级(Lookaround Match):用来向前匹配和向后匹配;
- 条件匹配高级(Condition Match):一般搭配反向引用匹配和前后匹配来使用。
元字符速览表
| 类别 | 元字符 | 备注 | 说明 |
|---|---|---|---|
| 单字符 | . | 匹配单个任意字符 | |
| 字符集 | [] | 匹配多个字符中的一个 | |
| [-] | 匹配字符范围中的一个 | ||
| [^] | 匹配除当前字符集以外的字符 | ||
| 特殊 | \ | 用于转义其他元字符 | |
| 空白 | [\b] | 退格键(Backspace) | |
| \f | 换页键(Form feed) | ||
| \n | 换行(Line feed) | ||
| \r | 回车(Carriage return) | ||
| \t | 水平制表符(Tab) | ||
| \v | 垂直制表符(Vertical tab) | ||
| 类型 | \d | [0-9] | 匹配任何数字字符 |
| \D | [^0-9] | 匹配任何非数字字符 | |
| \w | [a-zA-Z0-9_] | 匹配任何字母、数字、下划线 | |
| \W | [^a-zA-Z0-9_] | 匹配字母、数字、下划线以外的字符 | |
| \s | [\f\n\r\t\v] | 匹配任何空白字符 | |
| \S | [^\f\n\r\t\v] | 匹配任何非空白字符 | |
| \x | 匹配十六进制值对应的ASCII字符 | ||
| \0 | 匹配八进制值对应的ASCII字符 | ||
| 重复 | + | 匹配一个或多个字符 | |
| * | 匹配零个或多个字符 | ||
| ? | 匹配零个或一个字符 | ||
| {3} | 确定次数匹配 | ||
| {2,4} | 次数范围匹配 | ||
| {3,} | 最小次数匹配 | ||
| +? | 匹配一个或多个字符(Lazy) | ||
| *? | 匹配零个或多个字符(Lazy) | ||
| {n,}? | 次数范围匹配(Lazy) | ||
| 位置 | \b | 匹配字母开始或者结束位置 | |
| ^ | 匹配字符开始位置 | ||
| $ | 匹配字符结束位置 | ||
| (?m) | 部分支持 | 置于开始处,代表支持匹配多行 | |
| 子表达式 | () | 用于成组匹配 | |
| 反向引用 | \1 \2 $1 $2 | 平台间格式有差异 | 用于引用第一项、第二项子表达式 |
| \E | 替换时用 | 作为\L或者\U的终止符 |
|
| \l | 替换时用 | 下一个字符转换成小写 | |
| \L | 替换时用 | 下一个字符至\E转换成小写 |
|
| \u | 替换时用 | 下一个字符转换成大写 | |
| \U | 替换时用 | 下一个字符至\E转换成大写 |
|
| 前后 | (?=) | 不包括匹配字符 | 根据匹配字符向前查找内容 |
| (?<=) | 部分支持 | 根据匹配字符向后查找内容 | |
| (?!) | 根据非匹配字符向前查找内容 | ||
| (?<!) | 部分支持 | 根据非匹配字符向后查找内容 | |
| 条件 | (?(backref)true) | 反向引用条件匹配 | |
| (?(look)true) | 前后条件匹配 |
浙公网安备 33010602011771号