我需要帮助找出 RegEx 语句来帮助我正确匹配交换机/路由器上的接口。
示例:正确的匹配可能是:
Fa1/0, Gig2/0/2, Fa3/0/33/333, G1/0/0:1, Gi0/0.900 etc.
我能得到的最接近的是:
[fget][a-z]*[0-9]+(?:[\/\.:][0-9]+)+
问题是它也匹配或不正确的Fa1/0
部分,根本不应该匹配。Fa1/0/
Fa1/0a
任何人都可以帮助我吗?
给定字符串: Start Fa1/0/1 Gig2/0 Fa1/0/ Ending
仅匹配: Fa1/0/1
和Gi2/0
限制:您不能使用:\s
或' '
(我使用的解析器不允许)
修饰符:大小写设置为不敏感。
附加信息/编辑如下
这实际上适用于新 SecureCRT 7.3 终端应用程序中的 RegEx 解析器。
目标是实时为正确的语法着色,同时从不正确的语法中消除着色。
这就是为什么我们不能依赖 ^ 和 $ 标记的原因,因为你永远无法确定单词会出现在行的开头或结尾。
正确匹配的整个单词将遵循以下格式:接口类型+数字+子接口(可选)。
接口类型:可以是从“F”到 FastEthernet 的任何内容。其他前缀包括 'g' 到 Gigabit,'e' 到以太网,以及 't' 到 10。
数字:这将遵循然后(重复)的模式。示例:1/2 或 1/2/3 甚至 1/2/3/4/5/6/7/8/10/12 在技术上对这种情况有效。
子接口(可选):将遵循 or 的格式。即:.900 或 :123
因此,更多的字符串示例可能是: F1/0/1.900 Gig2/0 Te1/0/0/1:23 单词可以以任何顺序出现并混合许多其他单词。IE:“显示 Int F1/0/0”或“int Range fa1/0/1 - 24”