列表不';t在Tcl中不包含自己的成员
我有一个包含一个成员的列表,该成员是字符串列表不';t在Tcl中不包含自己的成员,tcl,Tcl,我有一个包含一个成员的列表,该成员是字符串XXDDR0\u MA[12]。当我在列表中搜索该字符串时(使用lsearch),我得到的结果是列表中不包含该字符串。我甚至在搜索列表中的成员时得到: tcl> set nets_names {<cmd_stichstudy1>XXDDR0_MA[12]} tcl> lsearch $nets_names [lindex $nets_names 0] -1 tcl>设置网络名称 {XXDDR0_MA[12]} tcl>L搜
XXDDR0\u MA[12]
。当我在列表中搜索该字符串时(使用lsearch
),我得到的结果是列表中不包含该字符串。我甚至在搜索列表中的成员时得到:
tcl> set nets_names
{<cmd_stichstudy1>XXDDR0_MA[12]}
tcl> lsearch $nets_names [lindex $nets_names 0]
-1
tcl>设置网络名称
{XXDDR0_MA[12]}
tcl>L搜索$nets_名称[lindex$nets_名称0]
-1
为什么会发生这种情况?如果您使用它,它将按照您想要的方式工作
% set nets_names {<cmd_stichstudy1>XXDDR0_MA[12]}
<cmd_stichstudy1>XXDDR0_MA[12]
% lsearch -exact $nets_names [lindex $nets_names 0]
0
%
%set nets\u names{XXDDR0\u MA[12]}
XXDDR0_MA[12]
%L搜索-精确的$nets_名称[lindex$nets_名称0]
0
%
lsearch
有一个不幸的默认使用属性
引用手册:
如果省略所有匹配样式选项,则默认匹配样式为-glob
因此,请始终将
-exact
传递给lsearch
,除非您确实希望-glob
仅扩展正确的答案,因为搜索字符串包含方括号,带有glob样式匹配,lsearch
正在尝试匹配XXDDR0\u MA1
或XXDDR0\u MA2
——在