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

如何在Ansible中从API输出提取交换机名称与端口并注册为变量

提取交换机名称与端口的实现方案

下面是基于Python的正则提取方案,可直接将目标内容存入独立变量供后续任务调用:

核心正则规则

  • 交换机名称匹配规则:[A-Za-z]-\d{1,3}-D[A-Za-z],精准匹配「单字母-1-3位数字-D+单字母」格式
  • 交换机端口匹配规则:Gi\d+/\d+/\d+,匹配以Gi开头的标准交换机端口格式

代码示例

import re

# 假设spm_results是从Web API获取的逗号分隔字符串
spm_results = "设备基础详情,M-1-DA,运行状态正常,Gi3/0/4,端口带宽1G"

# 提取交换机名称并赋值变量
switch_name = re.search(r'[A-Za-z]-\d{1,3}-D[A-Za-z]', spm_results).group() if re.search(r'[A-Za-z]-\d{1,3}-D[A-Za-z]', spm_results) else None

# 提取交换机端口并赋值变量
switch_port = re.search(r'Gi\d+/\d+/\d+', spm_results).group() if re.search(r'Gi\d+/\d+/\d+', spm_results) else None

# 后续任务可直接调用这两个变量
print(switch_name)  # 输出: M-1-DA
print(switch_port)  # 输出: Gi3/0/4

补充说明

  • 如果字符串中存在多个符合规则的匹配项,可改用re.findall()获取所有结果后按需筛选
  • 代码加入空值判断,避免因无匹配项导致运行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:37:32