You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TextFSM规则优化需求:补全行首缺失的x字段继承值

TextFSM规则修改方案:缺失字段继承上一行值

问题场景

待解析的结构化文本:

x       y           z                  a            b               c
------ ----------- ------------------ ------------ --------------- ------------
4000   4000       No ID              Hun0/0/12       1.1.1.1           0           
       4001       No ID              Hun0/0/12       1.1.1.1      0

原TextFSM规则:

Value x((\d+)?)
Value y(\w+)
Value z(No ID|[\w\./:]+)
Value a([\w/\.]+)
Value b([\d\./:]+)
Value c(\d+)

Start
  ^${x}\s+${y}\s+${z}\s+(${a}\s+)?${b}\s+${c} -> Record

当前解析输出:

['4000', '4000', 'No ID', 'Hun0/0/12', '1.1.1.1', '0']
['', '4001', 'No ID', 'Hun0/0/12', '1.1.1.1', '0']

期望解析输出:

['4000', '4000', 'No ID', 'Hun0/0/12', '1.1.1.1', '0']
['4000', '4001', 'No ID', 'Hun0/0/12', '1.1.1.1', '0']

需求:修改规则让第二行缺失的x字段继承上一行的"4000"值,且所有输出为字符串类型。

修改后的TextFSM规则

Value Filldown x((\d+)?)
Value y(\w+)
Value z(No ID|[\w\./:]+)
Value a([\w/\.]+)
Value b([\d\./:]+)
Value c(\d+)

Start
  ^(?:${x}\s+)?${y}\s+${z}\s+${a}\s+${b}\s+${c} -> Record

规则说明

  1. Filldown属性:给x字段添加Filldown标记,TextFSM会自动将上一行有效的x值填充到当前行缺失的x字段中,解决空值继承问题。
  2. 匹配规则优化:用(?:${x}\s+)?将x字段的匹配设为可选,既可以匹配有x值的首行,也能匹配以空格开头、缺失x值的第二行。
  3. 字符串类型保证:所有字段的正则表达式匹配结果均为字符串,无需额外转换,满足输出要求。

内容的提问来源于stack exchange,提问作者bell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 02:46:15