简体中文
文本字素带、自动机与状态表同步展示搜索过程。基于当前 v3 的精确匹配语义。
参考并重写自 BrunoRB’s original visualization. 未加载旧站脚本。
在实验台切换 all、leftmost-first 和 leftmost-longest,对照重叠匹配的取舍。原文高亮选中范围的并集,结果列表保留每个重复项。点击结果可以跳到扫描中产生它的准确步骤;点击高亮片段会选择第一个与其重叠的结果。实验台展示完整结果,不受播放进度影响;动画始终展示 all 扫描。
替换内容按字面值处理,包括 $& 和看起来像 HTML 的文本。选择 all 时替换预览使用 leftmost-longest,其他情况使用当前的非重叠策略。复制 TypeScript 可在当前 workspace 的 v3 库中复现搜索和替换。
通过进度条、上一步、上一个/下一个命中向前或向后定位,定位会暂停播放。每个字素格显示从零开始的字素序号,以及它在原文中的 UTF-16 [start, end) 范围。点击结果可查看准确的 text.slice(start, end),并标记对应字素。
点击图节点(也支持 Enter 或空格)或表格中的状态编号,可以查看其前缀、Trie 中最长的真后缀、自身终态关键词,以及继承命中与来源状态。根节点代表空前缀。即使隐藏了其他 failure 连线,正在发生的回退仍会突出显示。
复制分享链接会把关键词、完整文本、速度、策略、替换内容和 failure 可见性写入 URL 片段,不改变当前地址,也不向后端发送输入。获得链接的人可以读取输入。打开分享链接时,链接配置优先于会话存储。链接保留当前语言路径,同一个片段也可用于另一语言页面。
导出 JSON 会保存带版本号的配置、完整的选中结果和替换结果。导入时校验配置并重新计算,不信任文件中保存的结果。无效文件不会改变当前输入。剪贴板或会话存储不可用时仍可使用工作台,生成的代码也会显示在页面上供手动复制。
编辑合并等待 120 ms 后,由可取消的 Worker 构建和扫描。只修改文本会复用词典和图形布局;修改策略或替换内容会复用轨迹。过时的 Worker 会终止,离开页面会清理待处理计算和播放。
教学工作台最多接受 2,000 个 UTF-16 关键词单元、200 个逗号分隔项、20,000 个文本单元、200 个替换单元,50,000 个轨迹步骤,以及按完整导出估算的 20 MB 数据预算(包含重复的关键词字符串和替换结果)。超过限制会明确报错,不展示部分结果。状态数不超过 150 时绘制图形;更大的词典仍可使用分页状态表和状态详情。字素带、状态表和结果每页展示 100 项,JSON 导出包含完整结果。这些限制只适用于网站,不限制库 API。页面处理耗时包含编辑合并等待、必要的 Worker 启动、计算和数据传输,不代表库的基准性能。