regex 总览待审核
syntax · 各种语法一处试

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 + 试串走过的路径高亮

注意分流:上面带 反向引用 / lookaround 的例子,引擎会自动从线性的 Pike VM 切到回溯引擎(结果栏会标出走了哪条)。而字符串值属性 \p{RGI_Emoji} 这类多码点序列不支持—— 那是 emoji 几页用原生 v 模式处理的内容。自研引擎页拆开这个引擎的 AST 与字节码。

🔗 在线试 / 测正则