# Text Custom Extract - 文本结构化提取 **节点功能:** `Text Custom Extract` 从 JSON 或类 JSON 文本中按目标 `key` 提取值。支持稳健的输入清理、多重解析回退、增强键名同义处理、可选精确匹配与基于标签的过滤。 ## 输入 | 参数名称 | 入端选择 | 数据类型 | 默认值 | 取值范围 | 描述 | | -------- | -------- | -------- | ------ | -------- | ---- | | `json_data` | - | STRING | `` | - | JSON 或类 JSON 文本;会清理代码块包裹与 JSON 外的冗余内容。 | | `key` | - | STRING | `zh` | - | 目标键名(支持同义变体)。 | | `precision_match` | - | COMBO | `disabled` | `disabled` / `enabled` | 当启用时采用精确匹配;否则进行不区分大小写且兼容同义变体的匹配。 | | `label_filter` | - | STRING | `` | - | 可选的逗号分隔标签过滤(支持中英文)。 | ## 输出 | 输出名称 | 数据类型 | 描述 | |---------|----------|------| | `string` | STRING | 提取的值;当为数值列表时以逗号连接;输入为对象数组时各项以换行拼接。 | ## 功能说明 - 输入清理:移除 Markdown 代码块包裹,截取首个完整的 JSON 片段。 - 多策略解析:尝试 `json.loads`,回退到 `ast.literal_eval`、引号规范化与正则键值提取。 - 同义键增强:内置 `bbox`、`label`、`confidence`、`x`、`y`、`width`、`height`、`zh`、`en` 等变体。 - 标签过滤:对对象或对象数组按 `label` 字段进行可选过滤。 - 精确匹配:启用时严格按键名匹配;禁用时进行同义与不区分大小写匹配。 - 值格式化:数值列表以逗号连接;其他列表按字符串化输出。 - 核心逻辑:清理;解析;同义;查找;格式;过滤;主执行。 ## 典型用法 - 简单提取:设置 `key=zh` 从对象或数组中提取中文文本。 - 同义匹配:设置 `key=bbox` 兼容匹配 `bbox`、`box`、`bounding_box` 等变体。 - 标签过滤:设置 `label_filter=person,cat` 仅保留标签包含 `person` 或 `cat` 的条目。 - 精确匹配:设置 `precision_match=enabled` 仅按提供的键名进行精确查找。 ## 注意与建议 - 节点接受被 Markdown 代码块包裹的 JSON,并自动裁剪 JSON 外的冗余文本。 - 当输入为对象数组时,匹配到的值会以换行拼接形成输出。