0

嗨,我正在使用它在开关上生成范围:http ://code.google.com/p/klish/wiki/subcommands

我已将模式设置为 0-255。这工作正常

<PTYPE name="MAX_LEARN_ADDR"
            method="integer"
            pattern="0..255"
            />

这正确地只接受 0-255 并停止像 * $ £ 这样的事情,说它们是无效的。但是 - 导致错误。我试过:

 ^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$

同样的事情也会发生。

样本合法输入:

switch(config-if)# switchport port-security maximum 3                           
%INFO: port-security maximum is 3, up to 3 DYNAMIC addresses will be learned

样本非法输入:

switch(config-if)# switchport port-security maximum *                           
Syntax error: Illegal parameter

然而:

switch(config-if)# switchport port-security maximum -                           

给出一个 python 跟踪,因为 - 没有被捕获为无效参数并且被传递给函数。

4

4 回答 4

0

您为什么不尝试使用它来代替您应该允许的模式?

编辑 2好吧,这应该可以解决问题!

^(25[0-5]|[2][0-4]\d|[1]\d\d|[1-9]\d|\d)$
于 2013-02-12T12:38:55.547 回答
0

^([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])$将是你需要的

于 2013-02-12T12:45:56.117 回答
0

这个正则表达式可能会为您完成工作。

^25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d$

第一部分:25[0-5]允许 250 到 255 之间
的数字 第二部分:2[0-4]\d允许 200 到 249 之间
的数字 第三部分:1\d\d允许 100 到 199之间
的数字 最后一部分:[1-9]?\d允许 0 到 99 之间的数字,并确保 00 或 01 可以不被接受,但 0、1 等可以。

于 2013-02-12T12:52:21.853 回答
0

答案是如果范围从 0 开始,klish 就会出现问题。

于 2013-03-01T15:43:31.007 回答