Skip to content
🔧

正则表达式测试器

文本与代码 · 免费在线工具

测试正则表达式并实时高亮匹配。

CoderNewbie 团队
//g
Flags:
2 matches found
76 字符
2 matches
Contact us at [email protected] or [email protected] — replies within 24h.

Match Details

#1pos: 14"[email protected]"groups: [hello, example.com]
#2pos: 35"[email protected]"groups: [support, ez4code.dev]

实时高亮

在你输入模式和测试文本时实时看到匹配高亮。

捕获组

检查每个匹配的每个捕获组,位置和值清晰排列。

标志支持

切换 g、i、m 和 s 标志以微调你的模式。

如何使用正则表达式测试器

  1. 1在输入区域输入或粘贴文本或代码。
  2. 2选择所需的操作(格式化、转换、分析等)。
  3. 3点击操作按钮进行处理。
  4. 4从输出区域复制结果。

功能特点

  • 完全免费 — 无需注册、无订阅、无广告
  • 完全在浏览器中运行 — 数据从不离开您的设备
  • 快速轻量 — 即时获得结果
  • 跨平台 — 支持桌面、平板和移动设备

什么是正则表达式测试器?

正则表达式(regex)是一种由 IEEE POSIX 和 ECMAScript 规范定义的模式匹配语言。它使用元字符和字面量描述搜索模式。正则表达式测试器让您可以实时评估模式对测试字符串的匹配,高亮匹配结果和捕获组。

正则表达式测试器是如何工作的?

测试器将您的模式编译为状态机(NFA/DFA)并应用到输入字符串。标志修改行为:g(全局)、i(不区分大小写)、m(多行)、s(dotAll)、u(unicode)、y(粘性)。匹配结果显示位置、捕获组和命名组。

常见用例

  • 表单验证——邮箱、电话号码、邮政编码
  • 日志解析——从结构化日志行中提取字段
  • URL 路由——匹配 Web 框架中的路径模式
  • 搜索和替换——批量文本转换

正则表达式与字符串方法的区别

字符串方法(includes、indexOf、startsWith)对于精确匹配更简单更快。正则表达式对于基于模式的匹配(如「文档中的所有邮箱」)是必要的。简单检查请优先使用字符串方法;灵活模式请使用正则表达式。过于复杂的正则可能导致 ReDoS(正则表达式拒绝服务)。

安全与隐私

本工具完全在浏览器中运行。在生产环境中使用正则表达式时要注意 ReDoS——某些模式(如嵌套量词 (a+)+)可能导致灾难性回溯。对用户提供的模式请使用超时或安全正则库。

技术细节

规范:ECMAScript 2024(MDN 参考)、IEEE POSIX。元字符:. * + ? ^ $ { } [ ] \ | ( )。字符类:\d \w \s \b。量词:*(0+)、+(1+)、?(0-1)、{n,m}。前瞻:(?=...) (?!...)。后顾:(?<=...) (?<!...)。命名组:(?<name>...)。

常见问题

贪婪量词和惰性量词有什么区别?

贪婪量词(*、+)尽可能多地匹配;惰性量词(*?、+?)尽可能少地匹配。需要最短匹配时使用惰性量词。

如何匹配整个单词?

使用单词边界:\bword\b 匹配 'word' 但不匹配 'sword' 或 'words'。

什么是前瞻和后顾?

前瞻 (?=...) 断言后面跟随的内容但不消耗它。后顾 (?<=...) 断言前面是的内容。它们是零宽断言,用于条件匹配。

相关工具

学习相关概念

学习相关概念

了解工具背后的编程概念。