【问题标题】:TCL: searching a list for elements containing a particular character using lsearchTCL:使用 lsearch 在列表中搜索包含特定字符的元素
【发布时间】:2018-12-13 13:54:35
【问题描述】:

在以下列表中:

{12 34 23 54 67 75 46}

使用 lsearch,用于从列表中查找所有编号为 '4'在里面吗?

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

【问题讨论】:

  • 您应该在下次询问时发布您尝试过的内容(参见mcve)。

标签: list tcl


【解决方案1】:

参考:lsearch

你可以使用:

 set newlist [lsearch -all -inline -glob $mylist *4*]

-glob 是默认值,我将其用于文档目的。

-all 表示返回所有结果,而不仅仅是第一个匹配。

-inline 表示返回列表作为结果。

【讨论】:

    【解决方案2】:

    如果您知道所匹配的内容不包含任何对 glob 具有特殊含义的字符,则 Brad Lanam 给出的答案将起作用。如果不能保证,您可以使用:

    set newlist [lsearch -all -inline -regexp $mylist (?q)4]
    

    (?q) 使后面的任何内容成为文字字符串。所以不会发生对任何字符的特殊解释。但是正则表达式默认是不锚定的,所以字符串可以出现在要匹配的列表元素的任意位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 2015-04-09
      • 2020-01-10
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多