regex 语法速览:一个 playground 跑通各种写法
本系列前半讲的是 Unicode / emoji。这页回到正则语法本身:字面量、字符类、量词、分组、
锚点、反向引用、断言、标志位……下面这些本仓库的 @vega/parsing/regex 引擎基本都支持。
最上面是一个实时匹配器,紧接着能把当前这条正则现场编译成状态机(NFA/DFA)查看;再下面按类别列了大量例子,点击即可加载进来看命中高亮与捕获组。
i m s g y d u v · 鼠标点下面例子自动填
命中高亮(绿框 = 匹配到的子串)
↑ 这个匹配器会一直钉在顶部 —— 点下面任意例子,这里实时更新并闪一下。
🔬 把这条 regex 变成状态机
换个视角看同一条 pattern:正则 → NFA(Thompson 构造)→ DFA(子集构造)→ 最小化 DFA,
三台机器认同一门语言。这里直接拿本仓库 @vega/parsing 的 AST 现场编译,边标的是字符集 / 区间
(symbolic automaton),所以 [a-z]、\d、.、{n,m}、Unicode 都画得出。
碰到反向引用 / lookaround / 原子组会明确提示「超出有限状态机」——它们本就不是正则语言,
这正是引擎遇到它们要回溯的原因;词边界 / 行锚点这类带位置的断言也不画。
(图形画板借自 automata 系列。)
可尝试 gr(a|e)y、[a-z]\d*、a(b|c){2,3}。
在最小化 DFA 上走一遍 · 整串接受语义(不是子串搜索)
NFA Thompson 构造 · 含 ε 边
DFA 子集构造 · 无 ε
最小化 DFA + 试串走过的路径高亮
\p{RGI_Emoji} 这类多码点序列不支持——
那是 emoji 几页用原生 v 模式处理的内容。自研引擎页拆开这个引擎的 AST 与字节码。
🔗 在线试 / 测正则
- regex101 · regex101.com 最常用的在线测试器:逐 token 解释、替换预览、调试器,还能切 PCRE / JS / Python 等多种 flavor。
- RegExr · regexr.com 交互测试 + 内置 cheatsheet + 社区表达式库,hover 即高亮每段的含义,易于上手。
- Regex Tester · devtoolcafe.com 轻量测试器,URL 直接带 flags / 表达式参数,适合贴个链接分享一条正则。