Tcl列表元素查找命令lsearch

lsearch ?options? list pattern

查看列表是否包含匹配指定pattern的元素。如果包含,则返回第一个匹配的元素的索引,如果没有则返回-1。选项options用于指定列表中的元素与pattern的匹配方式。选项可以分为几种类型。

匹配模式选项

如果没有指定以下任何选项,则默认为-glob模式。如果指定了多个匹配模式,则给出的最后一个匹配模式生效。

选项说明
-exactPattern被视为文本字符串,用于对每个列表元素进行精确的相等性比较。
-globPattern被视为glob-style的模式,用于对每个列表元素使用与string match命令相同的规则进行匹配。
-regexpPattern被视为正则表达式,用于对每个列表元素使用与re_syntax命令相同的规则进行匹配。
-sorted如果指定了这个选项,则认为列表中的元素是按顺序排列的。lsearch将使用二分法来搜索列表。如果没有指定其他选项,则列表中元素按ascii的顺序递增排序,这个选项与-glob和-regexp是互斥的。当指定-all或-not选项时,与-exact完全相同。

通用修饰选项

以下选项可以与所有匹配模式选项一起使用。

选项说明
-all返回包含所有匹配的元素的索引的列表,如果同时指定了-inline,则包含所有匹配的元素值的列表。如果返回索引,则索引将按数字顺序排列。如果返回元素值,则按列表中值的顺序排列。
-inline返回匹配的值,而不是索引。如果没有匹配的值,则返回空字符串。如果同时指定了-all,则包含所有匹配的元素值的列表。
-not返回第一个不匹配的元素的索引,可与-all、-inline选项一起使用,返回所有不匹配的索引或元素值的列表。
-start index从索引index开始搜索列表。索引值index的解析与lindex命令相同,支持string index。

内容描述选项

以下选项用于描述以何种方式解释搜索的列表中的元素。这些选项只有与-exact或-sorted选项一起使用时才有效。如果指定了多个,则指定的最后一个生效。如果不指定则默认为-ascii。

选项说明
-ascii列表元素将作为Unicode字符串进行比较。
-dictionary列表元素将使用字典样式的比较进行比较。只有在使用-sorted选项时,才与-ascii有实际的区别。 because values are only dictionary-equal when exactly equal.
-integer列表元素将作为整数值进行比较。
-nocase列表元素不区分大小写,只与-ascii组合有效果。
-real列表元素将作为浮点值进行比较。

 列表排序选项

以下选项只在与-sorted选项一起使用时有效。如果指定了多个,则指定的最后一个生效。默认是-increasing。

选项说明
-decreasing列表元素降序排列。
-increasing列表元素升序排列。
-bisect对于递增列表,返回元素小于或等于pattern的最后一个索引。对于递减列表,返回元素大于或等于pattern的最后一个索引。如果pattern位于第一个元素之前或列表为空,则返回-1。此选项不能与-all或-not选项一起使用。

嵌套列表选项

以下选项用于搜索列表中的列表,可以与其他任何选项一起使用。

选项说明
-index indexListindexList为索引的路径,与lindex命令的索引处理方式相同。
-subindices如果给出此选项,则此命令的索引结果将是找到的元素在整个列表中的完整路径。除非还指定了-index选项,否则此选项无效。

 

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值