🔍
免费正则表达式测试器
实时测试正则表达式匹配结果。查看高亮匹配、分组和匹配详情。
加载后可离线使用
//g
标志:
g 全局 - 查找所有匹配项 · i 不区分大小写 · m 多行 - ^ 和 $ 匹配行边界 · s 点匹配换行符 · u Unicode - 完整代码点匹配 · y 粘性 - 每个匹配必须在最后一个匹配的末尾开始
示例:
匹配项
The quick brown fox jumps over the lazy dog.
Pack my box with five dozen liquor jugs.在上方输入模式,即可在此查看高亮匹配。
常见用途
- 测试表单验证的正则表达式编写和测试用于验证电子邮件、电话号码、邮编和其他表单输入的正则表达式。
- 使用正则表达式解析服务器日志编写正则表达式模式以从日志文件中提取时间戳、IP地址、错误代码和结构化数据。
- 使用正则表达式提取和替换文本使用正则表达式查找模式、提取数据或在编辑器中运行之前准备查找和替换操作。
- 测试URL路由模式编写和测试Express、Nginx和Apache中URL路由规则的正则表达式模式。
- 使用正则表达式提取数据构建和测试从非结构化文本、HTML或markdown中提取结构化数据的模式。
工作原理
此工具完全在你的浏览器中使用 JavaScript 内置的 RegExp 引擎运行——与你访问的每个网站上的脚本使用同一引擎。模式、测试文本或匹配结果都不会发送到服务器。
- 1将模式编译为 RegExp你输入时,工具会使用你切换的标志(g、i、m、s、u、y)调用 new RegExp(pattern, flags)。如果模式语法无效,捕获的错误消息会立即内联显示——无需提交按钮。
- 2exec() 循环收集匹配引擎循环运行 re.exec(text),记录每个匹配的字符索引、长度、完整值、编号捕获组和任何命名组。10,000 个匹配的安全上限可防止失控的模式,零长度匹配保护会推进 lastIndex 以避免无限循环。
- 3将文本拆分为高亮片段buildSegments 函数遍历匹配偏移,将源文本切分为交替的未匹配和匹配片段。匹配片段包裹在使用循环配色的 <mark> 元素中,使重叠或相邻的匹配在视觉上仍可区分。
- 4通过 String.replace 实现替换模式切换到替换模式会直接调用 testText.replace(new RegExp(pattern, flags),replacement),这意味着 $1 和 $<name> 这样的反向引用与在 JavaScript 代码中的行为完全相同。结果文本实时显示,可复制到剪贴板。