Tcl 在操作数字符串中使用方括号时出现字符串匹配问题

Tcl 在操作数字符串中使用方括号时出现字符串匹配问题,tcl,Tcl,这看起来和预期的一样: set a 1 puts [string match $a $a] >> 1 然而,我发现这出乎意料: set a 1 puts [string match $a $a] >> 1 set b {[1]} puts [string match $b $b] >> 0 您能帮助解释上述行为吗?模式[1]是一个括号表达式,与括号内的字符相匹配。在这种情况下,唯一与模式匹配的字符串是1 % set b {[1]} [1] % puts

这看起来和预期的一样:

set a 1
puts [string match $a $a]
>> 1
然而,我发现这出乎意料:

set a 1
puts [string match $a $a]
>> 1
set b {[1]}
puts [string match $b $b]
>> 0

您能帮助解释上述行为吗?

模式
[1]
是一个括号表达式,与括号内的字符相匹配。在这种情况下,唯一与模式匹配的字符串是
1

% set b {[1]}
[1]
% puts [string match $b $b]
0
% puts [string match $b "1"]
1
% 
如果要比较两个字符串是否相同,请改用
stringequal…


如果您在unix shell环境中,
man n string
man 3tcl string
应打开一个手动页面,其中包含有关
string
命令的详细信息。

模式
[1]
是一个括号表达式,与括号内的字符相匹配。在这种情况下,唯一与模式匹配的字符串是
1

% set b {[1]}
[1]
% puts [string match $b $b]
0
% puts [string match $b "1"]
1
% 
如果要比较两个字符串是否相同,请改用
stringequal…

如果您在unix shell环境中,
man n string
man 3tcl string
应打开一个手册页,其中包含有关
string
命令的详细信息。

文档太多。文档太多。