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

正则匹配IF-MIB接口描述的g开头端口 兼容单/多数字后缀

IF-MIB接口描述端口信息正则匹配实践

待处理的示例输入文本

IF-MIB::ifDescr.10 = 1/1/g10, Office to DMZ
IF-MIB::ifDescr.6 = 1/1/g6, Office to DMZ
IF-MIB::ifDescr.4 = 1/1/g4, Office to DMZ

初始匹配逻辑的缺陷

最初尝试的正则存在硬编码长度的设计问题:

  • 环视分支手动拆分了1位、2位数字的ifDescr后缀匹配规则,用多分支拼接的方式绕开环视固定宽度要求,写法冗余
  • 接口编号部分手动拆分了1位、2位g后缀的匹配分支,无法同时兼容g6、g10这类数字长度不同的端口格式

对应的初始尝试正则:

(?:(?<=ifDescr\.\d = )|(?<=ifDescr\.\d\d = ))(?P<ifDescr>((\d\/\d\/g\d))|(\d\/\d\/g\d\d))

可用匹配方案

两类方案均使用通用数字匹配规则替代硬编码长度判断,可同时兼容任意长度的端口数字后缀,不会触发“环视要求固定宽度”的正则报错:

  • 无强制前缀要求的通用匹配
    对应正则:ifDescr\.\d+\s=\s((?:\d\/){2}g\d+)
    逻辑说明:通过\d+自动匹配任意长度的ifDescr后缀数字、接口层级数字与g后缀数字,用非捕获组复用两次数字/的层级结构,覆盖所有形如x/x/g数字的端口格式,无额外前缀校验要求。
  • 带完整IF-MIB前缀校验的精准匹配
    对应正则:(?<=IF-MIB::ifDescr)\.\d+\s=\s((\d+\/){2}g\d+)
    逻辑说明:通过固定宽度的正向后视锚定IF-MIB::ifDescr的完整前缀,避免误匹配其他同名字段,匹配范围更精准。

匹配效果:可从上述示例文本中精准提取所有端口值,包括1/1/g10、1/1/g6、1/1/g4三类不同数字长度的端口内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 14:06:04