编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 其他工具 / 正则表达式测试

正则表达式测试

测试正则匹配。

待匹配文本
匹配结果

这个工具能做什么

正则表达式测试解决的是「正则写完了却不确定它到底匹配到了什么」这个日常痛点。你在一个输入框里填正则表达式主体,另一个填标志位(如 g、i、m),再把待匹配的文本粘进来,点测试就能列出所有命中的片段。写爬虫抓取规则、清洗日志、做表单校验时,正则往往改几版都不对,靠脑子里空想匹配结果很容易翻车;正则在线测试把匹配过程可视化出来,改一版看一版结果,比在代码里反复 print 调试快得多。

这个工具在浏览器里直接用 JavaScript 的 RegExp 引擎跑你的正则,等价于 new RegExp(pattern, flags) 再执行 match / matchAll。标志位决定引擎行为:g 表示全局匹配、返回所有结果而不是只返回第一个;i 忽略大小写;m 让 ^ 和 $ 匹配每一行的行首行尾;s 让 . 也能匹配换行符;u 按 Unicode 码点处理,从而正确匹配 emoji 和中文等多字节字符。因为走的是 JS 内置引擎(ECMAScript 正则方言),它支持捕获组、命名组 (?<name>...)、前瞻 (?=...) 和后顾 (?<=...) 这类语法,但不支持某些 PCRE 独有的特性(如递归、possessive 量词)。整个正则匹配测试都在你本机完成,文本不上传服务器。

举两个常见例子。一是校验手机号:正则填 ^1[3-9]\d{9}$,把一批号码逐行贴进去,配合 m 标志逐行验,能立刻看出哪些格式不合规。二是从日志里抓时间戳:用 \d{4}-\d{2}-\d{2} 加 g 标志,一次性把整段日志里所有形如 2026-07-23 的日期全部列出来,核对采集是否完整。做接口字段清洗、Nginx 日志分析、批量替换前的匹配确认,都可以先在这里把正则调通,再拷回代码里用。

几个容易踩的点:忘记加 g 标志时,很多语言的 matchAll 只返回第一个匹配,以为正则写错其实是标志漏了;. 默认不匹配换行,跨行匹配要么加 s 标志要么用 [\s\S];贪婪量词 .* 会尽可能多吃字符,需要非贪婪时记得写成 .*?。另外要注意 regex 方言差异:这里用的是 JS 引擎,若你的正则最终跑在 Python、Java 或 grep 上,\d 对 Unicode 数字的处理、命名组写法 (?P<name>...) 等细节可能不一致,最终以目标运行环境为准。

正则表达式测试是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“正则表达式测试”、“正则测试”、“正则在线测试”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

支持哪些正则标志?
支持 ECMAScript 的 g(全局)、i(忽略大小写)、m(多行)、s(dotAll,让 . 匹配换行)、u(Unicode)、y(粘性)。填在标志框里即可,不确定时可以先只填 g。
为什么只匹配到第一个结果,后面的没出来?
多半是没加 g 标志。不带 g 时引擎只返回第一个匹配;要列出文本里的全部命中,标志里加上 g 再测一次即可。
这里调通的正则拷到 Python 或 Java 里能直接用吗?
语法大体通用,但方言有差异。本工具走 JavaScript 引擎,命名组写法 (?<name>...)、\d 对 Unicode 的边界、lookbehind 支持度等和 PCRE、Python re 不完全一致,需以目标语言实测为准。
输入的正则和文本会被上传吗?
不会。正则和文本都在你浏览器本地用 JS 的 RegExp 执行,不发送到服务器,所以粘敏感日志或密钥样本来测也没问题。
匹配中文或 emoji 时位置错乱、结果不对怎么办?
加 u 标志按 Unicode 码点匹配。不加 u 时引擎按 UTF-16 码元处理,遇到占两个码元的 emoji,量词和匹配位置会算错。

相关工具

查看全部「其他工具」工具 →

相关名词解释