在以下列表中:
{12 34 23 54 67 75 46}
使用 lsearch ,从该列表中查找所有编号为 '4'< / em> ?
(即输出应返回{34 54 46})
答案 0 :(得分:2)
参考:lsearch
您可以使用:
set newlist [lsearch -all -inline -glob $mylist *4*]
-glob
是默认设置,出于文档目的,我将其放入其中。
-all
表示返回所有结果,而不仅仅是第一个匹配项。
-inline
表示返回列表作为结果。
答案 1 :(得分:0)
如果您知道要匹配的内容将不包含任何具有特殊含义的字符,那么Brad Lanam给出的答案将起作用。如果不能保证,可以使用:
set newlist [lsearch -all -inline -regexp $mylist (?q)4]
(?q)使它后面的所有内容成为文字字符串。因此,不会对任何字符进行特殊解释。但是默认情况下,正则表达式不会锚定,因此该字符串可以出现在列表元素中要匹配的任何地方。