(x86asm, mipsasm, llvm) 标签和指令匹配会吞噬前面的空行

作者: mattgodbolt创建于 2026年8月31日更新于 2026年8月31日

描述问题

在组装语法中,标签和指令规则使用 ^\s* 作为锚定符。由于 \s 匹配 \n,以 前一个空白或只有空格的行 开始的匹配可以穿过换行并进入下一行的标签。由于 JS 正则表达式偏爱左侧匹配,早期的开始优先于正确的匹配,导致生成的 <span> 过早开始了一行:

内容来源: highlightjs/highlight.js