首页 > 解决方案 > 如何在使用 lsearch 时转义特殊字符?

问题描述

如何在使用搜索时转义特殊字符(例如“[]”)?

考虑以下场景:

>> set L { a b c [] }
>> a b c []
>> lsearch $L b
>> 1
>> lsearch $L "[]"
>> -1

当我运行 lsearch $L "[]" 时,我希望得到 3

标签: tcl

解决方案


在查找固定字符串而不是模式时,最简单的方法是使用 lsearch 的 -exact 选项。您还需要确保 Tcl 不对搜索字符串进行替换,例如将其括在花括号内。否则你会告诉 Tcl 寻找一个空字符串(执行一个空命令字符串的结果):

lsearch -exact $L {[]}

推荐阅读