正则表达式测试工具
实时测试正则表达式,高亮显示匹配结果,提供常用模式库和替换功能
匹配结果
暂无匹配结果
替换功能
常用正则模式库
使用说明
正则表达式标志
- g - 全局匹配:查找所有匹配项,而不是在第一个匹配后停止
- i - 忽略大小写:匹配时不区分大小写
- m - 多行模式:^ 和 $ 匹配每一行的开始和结束
捕获组
使用圆括号 () 创建捕获组,可以在替换中使用 $1, $2 等引用。
示例:(\d{3})-(\d{4}) 可以匹配 123-4567,替换为 $2-$1 得到 4567-123
常用元字符
\d- 数字 (0-9)\w- 字母数字下划线\s- 空白字符.- 任意字符(除换行符)*- 0次或多次+- 1次或多次?- 0次或1次
实时匹配
输入正则表达式和测试文本后,工具会实时显示匹配结果,匹配的内容会高亮显示,方便调试和学习。
实用案例:正则表达式的实战应用
案例1:邮箱地址格式验证
场景:表单验证需要检查用户输入的邮箱地址是否符合标准格式。
正则表达式:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
测试文本:
[email protected] ✓ [email protected] ✓ invalid@ ✗ @domain.com ✗
效果:准确识别有效邮箱,验证准确率100%,避免了无效邮箱进入数据库。
案例2:从文本中批量提取手机号
场景:从客户留言中提取所有手机号码,用于客户回访。
正则表达式:
1[3-9]\d{9}
使用步骤:
- 将客户留言粘贴到测试文本区
- 输入手机号正则表达式
- 勾选"g"全局匹配,查看所有匹配结果
- 从匹配详情中复制所有手机号
效果:从500条留言中快速提取出235个手机号,人工提取需要2小时,工具只需2分钟。
案例3:密码强度规则验证
场景:设计注册页面,要求密码必须包含大小写字母、数字、特殊符号,且长度8-20位。
正则表达式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,20}$
测试示例:
Pass123! ✓ (符合规则) password ✗ (缺少大写、数字、符号) Pass123 ✗ (缺少特殊符号)
效果:使用正则测试工具调试规则,确保密码验证逻辑正确,提升系统安全性。
案例4:服务器日志错误提取
场景:从10万行服务器日志中提取所有ERROR级别的日志,用于故障分析。
正则表达式:
^\[.*?\]\s+ERROR.*$
使用步骤:
- 将日志文件内容粘贴到测试文本区
- 输入ERROR日志匹配的正则表达式
- 勾选"g"和"m"(全局+多行模式)
- 查看所有ERROR日志的匹配结果
- 分析错误模式,定位系统问题
效果:快速从10万行日志中提取出327条ERROR日志,定位了3个系统Bug,节省了排查时间。
常见问题解答 (FAQ)
1. g、i、m标志分别是什么意思?
正则表达式标志(flags)用于控制匹配行为:
- g (global):全局匹配,找到所有匹配项,而不是只找第一个
- i (ignore case):忽略大小写,A和a视为相同
- m (multiline):多行模式,^和$可以匹配每行的开始和结束
2. 正则表达式中的特殊字符如何转义?
以下特殊字符在正则中有特殊含义,如需匹配字符本身,需要用反斜杠转义:
. * + ? ^ $ { } [ ] ( ) | \
例如:匹配点号"."需要写成"\.",匹配美元符"$"需要写成"\$"。
3. 什么是捕获组?如何使用?
捕获组用括号()定义,可以提取匹配的子串。例如:
(\d{4})-(\d{2})-(\d{2})
匹配日期"2025-10-23"时,可以分别提取年(2025)、月(10)、日(23)。
使用场景:提取URL参数、解析日期时间、分离姓名等。
4. 贪婪匹配和非贪婪匹配有什么区别?
贪婪匹配:尽可能多地匹配字符。例如 .+ 会匹配尽可能长的字符串。
非贪婪匹配:尽可能少地匹配字符。在量词后加?变为非贪婪,如 .+?
示例:对于文本"<div>content</div>",<.*>(贪婪)会匹配整个字符串,而<.*?>(非贪婪)只匹配<div>和</div>。
5. 如何匹配中文字符?
匹配中文字符的常用正则表达式:
[\u4e00-\u9fa5]
这个范围涵盖了常用的汉字。如果需要匹配一个或多个汉字:
[\u4e00-\u9fa5]+
可以在我们的工具中测试验证效果。
6. 正则替换功能如何使用?
使用替换功能可以批量修改文本:
- 输入要匹配的正则表达式
- 在"替换为"框中输入替换文本
- 支持使用$1、$2引用捕获组
- 点击"替换"查看结果
(\d{4})-(\d{2})-(\d{2})匹配,替换为$1/$2/$3。
7. 为什么我的正则表达式匹配失败?
常见错误包括:
- 忘记转义特殊字符:如匹配点号要用\.而不是.
- 量词位置错误:量词必须放在要重复的元素后面
- 括号未闭合:每个(必须有对应的)
- 字符类错误:[a-Z]不是有效范围,应该用[a-zA-Z]
8. 常用的正则模式有哪些?
^\d+$
纯数字
^[a-zA-Z]+$
纯字母
\s+
空白字符(空格、Tab、换行)
\w+
单词字符(字母、数字、下划线)
https?://\S+
URL地址
9. 如何测试正则性能?
在我们的工具中测试时,注意:
- 避免过度使用.*和.+(可能导致回溯)
- 优先使用具体字符类而非.
- 使用非贪婪匹配(?)优化性能
- 测试大文本时观察响应时间
10. 这个工具适合正则学习吗?
非常适合!我们的正则测试工具是学习正则表达式的绝佳工具:
- 实时反馈:输入正则后立即看到匹配效果
- 高亮显示:清晰看到哪些部分被匹配
- 捕获组展示:理解括号的作用
- 常用模式库:参考学习常用正则
- 错误提示:语法错误时给出提示
建议从简单模式开始练习,逐步掌握复杂语法。
💡 正则表达式学习技巧
📚 学习路径
- 1. 掌握基本字符匹配
- 2. 学习量词(*、+、?、{n})
- 3. 理解字符类([abc]、\d、\w)
- 4. 练习捕获组和引用
- 5. 学习断言(前瞻、后顾)
🎯 调试技巧
- • 从简单开始,逐步复杂化
- • 用小数据集测试
- • 分段构建复杂正则
- • 使用注释说明各部分作用
- • 保存常用正则模式
⚡ 性能优化
- • 避免过度使用.*
- • 使用非贪婪匹配.+?
- • 优先使用字符类[abc]
- • 固定长度用{n}而非重复量词
- • 测试大文本验证性能
📖 推荐学习资源
- • 《精通正则表达式》(Jeffrey Friedl著)- 经典教材
- • MDN正则表达式文档 - 权威参考
- • RegexOne.com - 交互式教程
- • 在本工具中实践常用模式 - 边学边用
🔒 技术实现与数据安全
技术特点
- • JavaScript正则引擎:使用浏览器内置RegExp对象
- • 实时匹配:输入时即时显示匹配结果
- • 语法高亮:匹配内容高亮显示
- • 错误检测:自动检测正则语法错误
- • 纯前端:无服务器依赖
隐私保护
- • 本地处理:所有匹配在浏览器完成
- • 敏感数据安全:可安全测试包含敏感信息的文本
- • 无数据上传:测试文本不会发送到服务器
- • 无历史记录:关闭页面后不留痕迹
- • 开源透明:代码公开可审查
性能数据:实时匹配响应<50ms,支持10000+字符文本测试。兼容ECMAScript 2018+正则特性。支持Chrome 90+、Firefox 88+、Safari 14+等现代浏览器。