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

求更简洁的正则表达式提取Cisco设备序列号

从Cisco设备show inventory输出中提取序列号的简洁正则表达式方案

需求背景

需要从Cisco设备的show inventory输出中提取设备序列号,现有正则表达式r'PID: \S+\s+, VID:\s+\S+\s+, SN: (\S+)'可正常工作,寻求更简洁的实现方案。

示例输出

switch-01#sh inventory
NAME c93xx Stack, DESCR c93xx Stack
PID C9300-48P         , VID V02  , SN **ABC1979G123**

NAME Switch 1, DESCR C9300-48P
PID C9300-48P         , VID V02  , SN ABC1979G123

NAME Switch 1 - Power Supply A, DESCR Switch 1 - Power Supply A
PID PWR-C1-715WAC-P   , VID V01  , SN POW1978ST01

NAME Switch 1 - Power Supply B, DESCR Switch 1 - Power Supply B
PID PWR-C1-715WAC-P   , VID V01  , SN POW1978ST02

NAME Switch 1 FRU Uplink Module 1, DESCR 4x1G Uplink Module
PID C9300-NM-4G       , VID V01  , SN FUM2023CIOC

NAME Gi111, DESCR 1000BaseSX SFP
PID GLC-SX-MMD          , VID V01  , SN GBIC2020C01

NAME Gi112, DESCR 1000BaseSX SFP
PID GLC-SX-MMD          , VID V01  , SN GBIC2020C02


switch-01#

简化正则方案推荐

以下是几种更简洁且有效的正则表达式,可根据实际需求选择:

  • 方案1:最极简实现

    r'SN\s+(\S+)'
    

    直接匹配SN后跟随的非空白字符序列(即序列号),代码最短,执行效率最高。适用于确认show inventory输出中仅设备条目行包含SN字段的场景。

  • 方案2:带上下文校验的实现

    r'PID.*SN\s+(\S+)'
    

    通过PID字段限定仅匹配设备条目行,避免潜在的非目标SN字符串干扰,兼顾简洁性与鲁棒性。

  • 方案3:精准匹配字段结构的实现

    r'PID\s+\S+\s*,\s*VID\s+\S+\s*,\s*SN\s+(\S+)'
    

    严格匹配PID、VID、SN的字段分隔结构,用\s*适配字段间任意数量的空格,兼容不同Cisco设备的输出格式差异,同时比原正则更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:43:14