正则表达式测试工具
支持分组与高亮的在线正则表达式测试工具,实时预览匹配结果。匹配结果
替换结果
/
/
支持标志:g(全局) i(不区分大小写) m(多行) s(dotAll) u(Unicode) y(粘性)
正则校验示例代码
工具介绍
工具猫 ToolCat 正则表达式测试工具支持多标志、多分组展示与高亮预览,帮助开发者快速测试与调试正则表达式。可实时显示匹配结果、分组内容及位置标记,支持常用正则标志(如 g、i、m 等),让正则调试更直观、更高效。
正则表达式的作用
正则表达式是用于描述文本模式的表达式,它可以在大规模文本中高效地查找、匹配、抽取和替换指定结构或内容,是开发、数据处理和运维中的核心能力。
典型应用场景
- 数据验证:如邮箱、手机号、URL、身份证号等格式校验
- 搜索与替换:在文本或代码中批量查找并替换匹配内容
- 解析结构化文本:解析日志、CSV/TSV、简单配置、标签等
- 字段抽取:从原始文本中提取时间、金额、编号、关键字
- 日志分析:快速定位错误、IP、请求路径等关键模式
- 数据清洗:过滤非法字符、规范空白、删除冗余内容
- 语法高亮/提示:为编辑器或页面提供匹配高亮与提示
为什么要学习正则表达式
掌握正则表达式能够显著提升文本处理与自动化能力,常见编程语言与工具(如 JavaScript、PHP、Python、grep、sed、VSCode)均内置支持。熟悉常用模式后,可在数据清洗、日志排错、表单校验等工作中事半功倍。
实际应用案例
日志中提取请求路径与状态码
使用 /"(GET|POST)\s([^\s]+)".*?(\d{3})/ 提取方法、路径与状态码,快速生成报表或定位问题。
批量替换不规范电话号码
用 /(\+?86)?1[3-9]\d{9}/ 识别手机号并统一为标准格式,以便后续入库或短信发送。
正则表达式快速参考
常用元字符
| 语法符号 | 代码示例 | 详细说明 |
|---|---|---|
| . | /./ | 匹配除换行外的任意单个字符(在 dotAll 模式下包含换行) |
| \d | /\d+/ | 数字字符(0-9) |
| \w | /\w+/ | 单词字符(字母、数字、下划线) |
| \s | /\s+/ | 空白字符(空格、制表符、换行等) |
| \b | /\bword\b/ | 单词边界(单词与非单词之间的位置) |
| ^ | /^start/ | 行首锚点 |
| $ | /end$/ | 行尾锚点 |
| [] | /[A-Za-z]/ | 字符类,匹配集合中的任意一个字符 |
| () | /(abc)/ | 分组,形成子匹配并可捕获 |
| | | /(cat|dog)/ | 或(备选)匹配其中之一 |
常用限定符
| 语法符号 | 代码示例 | 详细说明 |
|---|---|---|
| * | /a*/ | 重复零次或多次 |
| + | /a+/ | 重复一次或多次 |
| ? | /a?/ | 重复零次或一次(可选) |
| {n} | /a{3}/ | 精确重复 n 次 |
| {n,} | /a{2,}/ | 至少重复 n 次 |
| {m,n} | /a{2,5}/ | 重复 m 至 n 次(包含边界) |
| 惰性 ? | /a+?/ | 惰性(非贪婪)匹配,尽可能少地匹配 |
常用反义字符
| 语法符号 | 代码示例 | 详细说明 |
|---|---|---|
| \D | /\D+/ | 非数字字符 |
| \W | /\W+/ | 非单词字符 |
| \S | /\S+/ | 非空白字符 |
| \B | /\Bword\B/ | 非单词边界位置 |
| [^...] | /[^0-9]/ | 排除类,匹配不在集合中的字符 |
语法参考
| 语法符号 | 代码示例 | 详细说明 |
|---|---|---|
| (?:...) | /(?:group)/ | 非捕获分组,仅用于分组而不产生捕获 |
| (? | /(? | 命名分组,便于按名称读取捕获结果 |
| (?=...) | /(?=USD)/ | 正向先行断言,后方需满足条件但不消耗字符 |
| (?!...) | /(?!USD)/ | 负向先行断言,后方需不满足条件 |
| Flags | /pattern/gim | 正则标志:g 全局、i 忽略大小写、m 多行、s dotAll 等 |