在TCL中无法在变量值“ 52/80”中搜索子字符串“ 52”

时间:2019-12-04 18:48:45

标签: regex tcl regexp-substr tclsh

我正在使用的代码:

set channel 52/80   
if {![ regexp { ([0-9]+)\/80 } $channel match cchannel ] } {
        puts "Channel regex-ed in \[SLVR\]\[SetAffected_channels\] is: $cchannel\n\n"
}

返回错误:无法读取“ cchannel”:没有这样的变量

我这里想念什么吗?

1 个答案:

答案 0 :(得分:2)

由于多余的空格,您的代码不匹配。

% set channel 52/80   
52/80
% regexp { ([0-9]+)\/80 } $channel match cchannel
0
% regexp {([0-9]+)\/80} $channel match cchannel
1
% set match
52/80
% set cchannel
52

在这种情况下,您也不应反转regexp的结果; if主体脚本似乎是当模式匹配时的……