正则表达式测试
实时测试和调试正则表达式,可视化匹配结果。查看正则匹配、捕获组和标志,提供语法高亮和详细的匹配信息,用于模式开发和调试。
正则表达式测试 工具介绍
强大的正则表达式测试工具,帮助您实时测试、调试和理解正则模式。在您输入模式和测试文本时即时查看高亮显示的匹配结果,使正则开发更快速、更直观。
非常适合开发者、数据分析师、QA工程师以及任何从事文本处理、数据验证、网页抓取或模式匹配工作的人。该工具提供详细的匹配信息,包括捕获组、匹配位置和匹配计数,用于全面的正则分析。
我们的测试器支持所有JavaScript正则标志(全局、不区分大小写、多行、dotAll、unicode和sticky),并提供清晰的匹配可视化和语法高亮,以便更好地理解。测试复杂模式、验证输入格式并高效调试正则问题。
所有处理都在您的浏览器本地进行,不会向任何服务器传输数据。您的正则模式和测试文本完全私密和安全。
正则表达式测试 使用教程
使用方法
- 输入模式:在模式字段中输入您的正则表达式模式
- 设置标志:选择适当的正则标志(g、i、m、s、u、y)
- 输入测试文本:添加要针对模式测试的文本
- 查看匹配:在您输入时实时查看高亮显示的匹配
- 查看详情:检查捕获组、匹配位置和匹配计数
- 优化模式:根据结果调整您的正则表达式,直到它完美工作
正则标志说明
g - 全局
在文本中查找所有匹配,而不是在第一个匹配后停止:
- 没有g:仅返回第一个匹配
- 有g:返回文本中的所有匹配
- 对于查找多个出现至关重要
- 最常用的标志
i - 不区分大小写
匹配时忽略大小写:
- 模式"hello"匹配"Hello"、"HELLO"、"HeLLo"
- 对用户输入验证很有用
- 简化需要匹配任何大小写的模式
- 通常与其他标志结合使用
m - 多行
更改^和$锚点的行为:
- ^匹配每行的开头(不仅仅是字符串开头)
- $匹配每行的结尾(不仅仅是字符串结尾)
- 处理多行文本时必不可少
- 对逐行验证很有用
s - DotAll
使点(.)匹配换行符:
- 通常.匹配除换行符外的任何字符
- 使用s标志,.匹配包括\n在内的所有内容
- 对跨多行匹配很有用
- 简化跨行的模式
u - Unicode
启用完整的Unicode支持:
- 正确处理Unicode字符和表情符号
- 启用Unicode属性转义,如\p{Letter}
- 正确处理代理对
- 推荐用于国际文本
y - Sticky
仅从lastIndex位置开始匹配:
- 匹配必须从确切的lastIndex位置开始
- 对解析和标记化很有用
- 比全局标志更严格
- 用于顺序匹配的高级用例
常见用例
数据验证
- 电子邮件验证:测试验证电子邮件地址的模式
- 电话号码:验证电话号码格式
- URL:检查URL模式并提取组件
- 邮政编码:验证邮政编码格式
- 信用卡:测试信用卡号码模式
- 日期:验证日期格式(MM/DD/YYYY等)
文本处理
- 提取数据:从文本中提取特定信息
- 查找模式:定位特定的文本模式
- 搜索和替换:在替换文本之前测试模式
- 解析日志:从日志文件中提取信息
- 清理数据:识别和删除不需要的字符
开发与调试
- 调试正则:测试和修复不工作的正则模式
- 学习正则:尝试模式以理解行为
- 优化模式:测试不同的方法以提高效率
- 验证输入:测试表单验证模式
- API开发:测试API参数验证的模式
网页抓取
- 提取URL:从HTML中查找和提取链接
- 解析HTML:提取特定元素或属性
- 查找模式:在网页内容中定位特定数据模式
- 清理文本:删除HTML标签或不需要的格式
常用正则模式
基本模式
- 电子邮件:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
- URL:https?://[^\s]+
- 电话(美国):\d{3}-\d{3}-\d{4}或\(\d{3}\)\s?\d{3}-\d{4}
- 日期(MM/DD/YYYY):\d{2}/\d{2}/\d{4}
- 时间(HH:MM):\d{2}:\d{2}
- 十六进制颜色:#[0-9A-Fa-f]{6}
- IP地址:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
字符类
- \d:任何数字(0-9)
- \w:任何单词字符(a-z、A-Z、0-9、_)
- \s:任何空白字符(空格、制表符、换行符)
- \D:任何非数字
- \W:任何非单词字符
- \S:任何非空白字符
- .:任何字符(没有s标志时除换行符外)
量词
- *:0次或多次
- +:1次或多次
- ?:0次或1次(可选)
- {n}:恰好n次
- {n,}:n次或更多次
- {n,m}:n到m次之间
锚点和边界
- ^:字符串开头(或使用m标志时的行开头)
- $:字符串结尾(或使用m标志时的行结尾)
- \b:单词边界
- \B:非单词边界
理解匹配结果
匹配高亮
匹配在测试文本中高亮显示:
- 每个匹配都被视觉高亮显示
- 使用全局标志显示多个匹配
- 适当处理重叠匹配
- 轻松视觉确认模式行为
捕获组
查看模式中的捕获组:
- 括号()创建捕获组
- 显示每个组的内容
- 编号组(1、2、3等)
- 对提取特定部分很有用
匹配信息
关于每个匹配的详细信息:
- 找到的匹配总数
- 每个匹配在文本中的位置
- 每个匹配的长度
- 捕获组的值
最佳实践
模式开发
- 从简单开始,逐步增加复杂性
- 使用包括边缘情况在内的多个示例进行测试
- 使用全局标志查看所有匹配
- 检查正面和负面测试用例
- 考虑大文本的性能
要避免的常见错误
- 忘记转义特殊字符(. * + ?等)
- 查找所有匹配时不使用全局标志
- 过度贪婪的量词(使用?进行非贪婪)
- 不使用边缘情况和无效输入进行测试
- 在简单就可以时使模式过于复杂
优化技巧
- 尽可能使用特定的字符类而不是.
- 适当时使用^和$锚定模式
- 当不需要捕获时使用非捕获组(?:)
- 通过谨慎使用量词避免过度回溯
- 使用实际数据大小测试性能
核心功能
- 实时测试:在您输入时即时查看匹配
- 所有JavaScript标志:支持g、i、m、s、u、y标志
- 匹配高亮:所有匹配的视觉高亮
- 捕获组:查看捕获组的值
- 匹配详情:位置和计数信息
- 错误处理:无效模式的清晰错误消息
- 无限制:在任何大小的文本上测试模式
- 完全隐私:所有处理都在本地进行
使用技巧
- 使用全局(g)标志查看所有匹配,而不仅仅是第一个
- 使用包括边缘情况在内的各种输入测试您的模式
- 从简单模式开始,逐步增加复杂性
- 使用捕获组()提取匹配的特定部分
- 启用不区分大小写(i)标志以进行灵活的文本匹配
- 处理多行文本时使用多行(m)标志
- 检查匹配计数以验证您找到了所有预期的匹配
- 测试有效和无效的输入以确保模式准确性
- 使用\b进行单词边界以仅匹配完整的单词
- 记住使用反斜杠转义特殊的正则字符
常见场景
场景1:电子邮件验证
您需要在表单中验证电子邮件地址。使用各种电子邮件格式测试模式[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,},以确保它捕获有效的电子邮件并拒绝无效的电子邮件。
场景2:提取电话号码
您有包含各种格式电话号码的文本。使用带有全局标志的模式\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}查找所有电话号码,无论格式如何。
场景3:解析日志文件
您需要从日志文件中提取时间戳。测试模式\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}以匹配ISO格式的时间戳,并验证它捕获所有日志条目。
场景4:清理HTML标签
您想从文本中删除HTML标签。使用带有全局标志的模式<[^>]+>测试以匹配所有HTML标签,并验证它不会意外匹配内容中的合法<或>字符。
常见问题
相关工具
字符串分割
即时按自定义分隔符将文本分割成单独的行或数组。自定义分隔符、修剪空格、删除空条目,处理CSV数据、列表或任何分隔文本,提供灵活选项。
下划线&驼峰转换
即时在snake_case、camelCase、PascalCase、kebab-case和CONSTANT_CASE之间转换。适用于代码重构、变量命名、API响应转换和跨编程语言标准化命名约定。
中英文符号转换
即时在中文全角和英文半角标点符号之间转换。转换逗号、句号、引号、括号等,实现正确的文本格式化、修复复制粘贴问题和标准化混合语言内容。
中文繁简体转换
即时在简体中文和繁体中文之间转换。使用OpenCC的专业双向转换,适用于文本本地化、翻译、跨地区内容适配和多语言出版。
文本重复检测
即时查找和删除文本中的重复行。检测重复内容、清理数据列表、识别唯一条目并提供详细统计。适用于数据清理、邮件列表和内容去重。
字体预览工具
即时预览和比较自定义文本的字体。适用于排版设计、字体选择、网页设计以及测试不同的字体样式、大小和粗细。