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

正则表达式匹配Cisco配置时返回非预期接口的问题

解决Cisco配置中匹配指定接口的正则问题

你的正则匹配错误的核心原因是:.*?会从第一个interface之后开始非贪婪匹配,不会阻止它跨过后续的interface行,导致匹配到了目标命令之前最近的那个接口。

修正后的正则表达式

interface (\S+)(?s)(?:(?!^interface\s).)*access-session port-control force-authorized

关键改进点

  • (?:(?!^interface\s).)*:使用负前瞻断言,确保匹配的内容不会包含新的行首interface关键字,这样就被限制在当前接口的配置块内,不会跨越到下一个接口。
  • (?s):保持单行模式,让.可以匹配换行符,适配多行的接口配置块。

测试验证

用你提供的示例配置:

interface GigabitEthernet1/0/44  
access-session port-control auto 
!
interface GigabitEthernet1/0/45  
access-session port-control force-authorized 

修正后的正则会精准捕获GigabitEthernet1/0/45,符合预期。

备选方案(更可靠)

如果配置文件复杂,建议直接按!分割配置块(Cisco配置用!分隔独立配置段),遍历每个块检查:

  1. 是否包含interface开头的行
  2. 是否包含目标命令access-session port-control force-authorized
    这种方法比正则更直观,也更容易处理特殊配置场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:32:44