我需要帮助找出一个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/
的{{1}}部分匹配,这部分不正确且根本不匹配。
任何人都可以帮助我吗?
给出字符串:Fa1/0a
仅匹配:Start Fa1/0/1 Gig2/0 Fa1/0/ Ending
和Fa1/0/1
限制:您无法使用:Gi2/0
或\s
(我使用的解析器并不允许)
修饰符:大小写设置为不敏感。
以下附加信息/编辑
这实际上适用于新SecureCRT 7.3终端应用程序中的RegEx解析器。
目标是实时着色正确的语法,同时从不正确的语法中删除颜色。
这就是为什么我们不能依赖^和$令牌,因为你永远无法确定这个词是在行的开头还是结尾。
正确匹配的整个单词将遵循以下格式:Interface-Type + Number + Sub-interface(可选)。
界面类型:可以是' F'到FastEthernet。其他前缀包括' g'千兆,' e'到以太网,' t'十点
数字:这将遵循模式然后(重复)。示例:1/2或1/2/3甚至1/2/3/4/5/6/7/8/10/12在技术上对此案例有效。
子接口(可选):将遵循或的格式。 IE:.900或:123
因此,更多的字符串示例可能是:F1 / 0 / 1.900 Gig2 / 0 Te1 / 0/0/1:23这些单词可以按任何顺序出现并混合许多其他单词。 IE:" Show Int F1 / 0/0"或" int范围fa1 / 0/1 - 24"
答案 0 :(得分:0)
这匹配您列出的所有表达式。除了一些微小的变化之外,最重要的是在最后添加一个负向前瞻表达。
[FG][a-z]*[0-9](?:[\/\.\:][0-9]+)*(?!\/)