仅匹配包含特殊字符的整个单词

时间:2014-09-06 01:35:22

标签: regex secure-crt

我需要帮助找出一个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/0Fa1/0/的{​​{1}}部分匹配,这部分不正确且根本不匹配。

任何人都可以帮助我吗?

给出字符串:Fa1/0a
仅匹配:Start Fa1/0/1 Gig2/0 Fa1/0/ EndingFa1/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"

1 个答案:

答案 0 :(得分:0)

这匹配您列出的所有表达式。除了一些微小的变化之外,最重要的是在最后添加一个负向前瞻表达。

[FG][a-z]*[0-9](?:[\/\.\:][0-9]+)*(?!\/)