✨ 正则表达式可视化分析器
实时匹配高亮、单步匹配 trace、ReDoS 风险检测,配套多语言代码片段与 30+ 常用模板。适用于:表单校验 · 日志抽取 · 数据清洗 · 代码搜索 · URL / 邮箱 / 手机号批量识别。
匹配:0
·
耗时:—
正则表达式(JS 语法)
📚 常用正则库 — 点任一条直接使用 · 共 50+ 条
找不到?用下方 🧱 构建器 自己拼
🧱 可视化构建器 — 不会写正则?点片段拼一个
点击下方任意片段 → 自动追加到上方输入框
📖 跟我学 — 选一个场景,跟着步骤点片段
👆 选个场景,我告诉你第一步该点哪个片段
字符类
量词
锚点 / 边界
分组 / 断言
📝 测试文本 & 命中
输入文本 → 点 ▶ 运行 → 下方依次显示高亮结果 + 命中列表
示例文本
🔎 命中高亮
在原文中黄色高亮每条命中
运行后这里会显示高亮结果
点上方 ▶ 运行 查看效果。默认示例已能匹配 John Smith 等 3 组姓名。
📋 命中列表
点行可跳到原文对应位置
运行后这里会逐条列出命中
格式:
#1 [start, end) "命中文本"
🧭 AST 流程图
左起 → 右终,每个方框是一段子模式
示意:每个方框是一段子模式;连线 = 顺序;红虚线 = |、?、* 等可走可不走的路径。输入上方正则后这里会变成你自己的 AST。
线条分支(红)= |、?、* 等可走可不走的路径;普通连线 = 顺序必经路径。
🚶 单步匹配 trace
点击上方命中行填充
选择一个命中后,这里按「捕获组 / 子模式」逐项展示其消耗字符与位置。
🪄 替换预览
支持
$1 $& $` $'
常用:
🌐 多语言代码生成
当前 pattern 与 flags → 等效片段
语言
差异提示
JS:
new RegExp(pat, flags) · 支持 i m s u y 与 $<name> 命名反向引用。
Python: re.compile(pat, flags) · 无 g,用 findall / finditer / sub;命名组访问 m.group('name')。
Go: regexp.MustCompile(\`pat\`) · 无内联 flags,用 (?i)(?m) 前缀;不支持 \d 简写需写 [0-9]。
Java: Pattern.compile(pat, flags) · 无 g,用 while (m.find());flags 常量 CASE_INSENSITIVE / MULTILINE / DOTALL / UNICODE_CASE。
PHP: preg_match('/pat/' . $flags, $text) · 包裹斜杠要转义;flags 字母串如 'iu'。
💼 我的库(本地)
没有保存过?试试内置示例:
库存在浏览器 localStorage(<8 条,满了再旧替换)。
📖 正则速查(点击展开)
元字符
- .
- 任意单字符(除 \n,加 s flag 也匹配 \n)
- \d \D
- 数字 / 非数字
- \w \W
- 单词字符([A-Za-z0-9_])/ 非
- \s \S
- 空白 / 非空白
- ^ $
- 行首 / 行尾(开 m 后为每行起止)
- \b \B
- 单词边界 / 非边界
量词
- *
- 0 次或多次
- +
- 1 次或多次
- ?
- 0 或 1 次(贪婪可加 ?)
- {n}
- 恰好 n 次
- {n,}
- 至少 n 次
- {n,m}
- n 到 m 次
字符类
- [abc]
- a / b / c 任一
- [^abc]
- 非 a/b/c
- [a-z]
- a 到 z 范围
- [[:alpha:]]
- POSIX 字母(JS 需 u 模式)
分组 / 反向引用
- (...)
- 捕获组,按顺序 $1 $2…
- (?:...)
- 非捕获组
- (?<name>...)
- 命名捕获组
- \1 \k<name>
- 反向引用
断言(零宽)
- x(?=y)
- 前瞻:x 后面紧跟 y
- x(?!y)
- 负前瞻:x 后面不能是 y
- (?<=y)x
- 后顾:x 前面是 y
- (?<!y)x
- 负后顾:x 前面不能是 y
替换语法
- 整段命中
- 第 1..9 个捕获组
- 命名捕获组(部分引擎)
- 命中前 / 后的剩余文本
$&$1..$9$<name>$\` $'为什么要做 AST 可视化与单步 trace
普通正则测试器只能告诉你「命中了什么」,但当一段正则出现回溯、错配、或者运行时性能塌方时,定位非常耗时。本工具把正则拆成 AST 节点用流程图展示,再把每个命中里每个子模式各自消耗的字符与位置列出,让人能直接看到回溯点和分组边界。
ReDoS 启发式扫描是最容易踩的坑:(.*)+、(.+)+、(a+)+、(a*)* 这类「嵌套量词」在某些输入上会让正则引擎指数级回溯。本工具会在 banner 区给出提示,但仅作最常见的几种,复杂 case 还需要在负载测试中复现。
所有解析与匹配都在浏览器内运行,不发起任何网络请求(详见 隐私说明)。仅当你主动点「保存」时,pattern 才会写入本地 localStorage。
常见用例:校验手机号 / 提取邮箱 / 解析日志 / 拆分 camelCase / 找所有 URL / 清洗 HTML 标签 / 提取 Markdown 链接。