首页 > 解决方案 > TCL lindex 从列表元素中删除引号

问题描述

我有一个列表,其中一些元素是字符串,我需要将它们括在引号中。

如果我遍历列表并将每个元素放到终端上,输出看起来是正确的。但是,如果我对包含在引号中的特定元素进行索引,则引号会消失。

示例代码:

set myList [list "BUILD_PROJ \"I have quotes\""]

foreach element $myList {
    puts [lindex $element 1]    
    puts [lindex $element]    
}

输出:

I have quotes
BUILD_PROJ "I have quotes"

如何从列表中获取特定的索引元素以保留其引号?

标签: tcl

解决方案


我的错,与分隔符混淆。我认为转义引号实际上给了我一个包含单个元素的列表。更新到这个:

set myList [list "BUILD_PROJ" "\"I have quotes\""]

puts $myList
puts [lindex $myList 0]
puts [lindex $myList 1]

现在输出如我所料:

BUILD_PROJ {"I have quotes"}
BUILD_PROJ
"I have quotes"

推荐阅读