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

基于目标地址匹配Cisco配置行的正则表达式问题排查

问题分析与解决

你的代码运行无结果,核心问题出在ip正则的锚点上:

  • 你定义的ip = r"(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)"包含^(字符串开头)和$(字符串结尾)锚点,这会要求每个IP必须是独立的完整字符串,但在ip route命令行中,IP只是行内的一部分,所以正则无法匹配。
  • 直接用空格分隔还可能不兼容Cisco配置中偶尔出现的多空格情况。

修正后的代码

import re

acl = 'ip route 10.5.48.0 255.255.255.0 10.242.245.65'
firewall = '10.242.245.65'
# 去掉^$锚点,匹配行内的IP片段
ip = r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
# 用\s+匹配一个或多个空格,兼容多空格场景
ip_route = f"ip route {ip}\s+{ip}\s+{firewall}"

if re.search(ip_route, acl):
    print(acl)

更严谨的IP匹配(可选)

如果需要确保IP地址的每个段合法(0-255),可以替换ip正则为更精确的版本:

ip = r"(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:10:43