用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])
[1-9] :匹配1~9的数字;
\d :匹配数字,包括0~9;
* :紧跟在 \d 之后,表明可以匹配零个及多个数字;
\. :匹配小数点;
? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;
0 :匹配一个数字0;
)
其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、56.78 之类的非负的整数和浮点数;
其中的 0\.\d*[1-9] 用以匹配诸如:0.1、0.23、0.405 之类的非负浮点数;
set Port xgei-0/1/1/43
set buf_inter_brief [MZteVerify $DUT4 " show intf-statistics utilization | include $Port" -r]
puts buf_inter_brief:$buf_inter_brief
##此规则可匹配非法整数和浮点数,要加转义字符“\”
set ptn_rate "$Port\\s+\\d+\\s+\[1-9]\\d*\\.?\\d*\\s+\\d+\\s+(\[1-9]\\d*\\.?\\d*)\\s+"
puts ptn_rate:$ptn_rate
set buf_up [regexp $ptn_rate $buf_inter_brief match portrate]
puts buf_up:$buf_up
puts match:$match
puts portrate:$portrate
版权声明:本文为weixin_44081384原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。