检索范围、匹配与结构化转换
选择输入与匹配方式
本页解释如何把带 id、title 字段的 JSON 文档数组筛选成 Markdown 目录。对应的输入、完整程序与预期结果见完整实践;文中的“本例”均指该程序。示例未在本轮运行。
先限定文件范围
搜索范围先限定目录、文件类型和忽略规则。ripgrep通常遵循忽略文件且默认跳过隐藏项,没搜到不代表不存在;用明确文件清单解释范围,比直接全盘扫描更可审阅。
选择固定字符串或正则
字面与正则应明确区分。包含点号或方括号的配置键若按正则解释会扩大匹配;固定字符串搜索适合精确标识,正则适合表达模式但要说明边界和大小写。
确认编码与字符差异
Unicode时视觉相同文本可能有不同规范形式。区分大小写、全角标点和组合字符,不能用字节位置直接当可见字符列;转换前保存原件以便追溯。
依据与适用范围
- 本课官方依据,资料核对日2026-10-17。
本课完成的是列明任务的理论与静态资料,不代表产品全部能力或三平台运行通过。历史文档保留旧URL;涉及账号、版本、价格与界面位置时,以对应官方资料及实际授权环境为准。
完成转换并保存结果
解析 JSON 字段
JSON结构应按解析后的键路径访问。正则适合定位候选文件,不能可靠处理任意嵌套JSON;缺失键与显式null语义不同,本例要求每个文档都有id和title。
筛选记录与选择字段
投影与过滤分别选择字段和选择记录。先确认过滤条件作用于正确层级,再构造最小输出;输出中去掉字段不代表原文件已脱敏,日志和缓存仍需独立检查。
按明确规则排序
稳定排序明确使用id而非目录遍历顺序。大小写规则、数字字符串和缺失值应有约定;本例验证id唯一后按字符串排序,因此10会排在2之前,这是明确语义而非数值排序。
处理失败与规模限制
没有结果时检查什么
无结果先核对根目录、忽略文件和大小写,再核对编码及字段位置。二进制文件、权限拒绝和零匹配是不同结果;退出状态需看具体工具,不能统一把非零当运行崩溃。
转义输出格式
输出转义是把数据放进目标格式时的必要步骤。Markdown链接标题中的方括号与反斜线需要处理,星号和反引号会改变格式,小于号可引入HTML。完整例对string.punctuation中的所有ASCII标点加反斜杠,包括小于号、大于号和&,使CommonMark链接文字保留字面内容。URL片段也有自己的编码规则;对HTML、JSON和Shell不能共用同一个转义函数。
确认输入规模限制
大文件边界受完整JSON加载和输出构建影响。本例为教学目录适用,内存随输入增长;流式JSON需要不同解析器和错误恢复设计,不以小样例通过宣称可处理任意规模。
继续阅读
- 检索与数据转换完整实践与解答