TCL:使用lsearch在列表中搜索包含特定字符的元素

时间:2018-12-13 13:54:36

标签: list tcl

在以下列表中:

{12 34 23 54 67 75 46}

使用 lsearch ,从该列表中查找所有编号为 '4'< / em>

(即输出应返回{34 54 46})

2 个答案:

答案 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)使它后面的所有内容成为文字字符串。因此,不会对任何字符进行特殊解释。但是默认情况下,正则表达式不会锚定,因此该字符串可以出现在列表元素中要匹配的任何地方。