Tcl 从字符串中删除双倒逗号

Tcl 从字符串中删除双倒逗号,tcl,trim,Tcl,Trim,我有这样一句话: {"a/b"} {"c/d"} {"e/f"} 我希望输出为: a/b c/d e/f 基本上我想从现有的行中删除所有的“和{}” 在TCL我应该怎么做 我尝试过使用字符串修剪,但没有帮助 set z {{"a/b"} {"c/d"} {"e/f"}} set trimmed_z [string trim $z "\"\"\}\{"] 它给 a/b"} {"c/d"} {"e/f string trim将仅删除字符串末端的字符,即仅删除开头和结尾的字符。您可以使用: 否

我有这样一句话:

{"a/b"} {"c/d"} {"e/f"}
我希望输出为:

a/b c/d e/f
基本上我想从现有的行中删除所有的“和{}”

在TCL我应该怎么做

我尝试过使用
字符串修剪
,但没有帮助

set z {{"a/b"} {"c/d"} {"e/f"}}
set trimmed_z [string trim $z "\"\"\}\{"]
它给

a/b"} {"c/d"} {"e/f

string trim
将仅删除字符串末端的字符,即仅删除开头和结尾的字符。您可以使用:

否则,由于该行看起来像一个Tcl列表,您可以使用(Tcl 8.6+)来获取“最里面的” 子列表的元素“:


还有其他方法可以做到这一点;可能是循环和
字符串修剪(这里我们只需要删除引号,因为这里的大括号似乎起到了引用机制的作用):

或:

或者,如果您喜欢使用以下正则表达式:


string trim
将仅删除字符串末端的字符,即仅删除开头和结尾的字符。您可以使用:

否则,由于该行看起来像一个Tcl列表,您可以使用(Tcl 8.6+)来获取“最里面的” 子列表的元素“:


还有其他方法可以做到这一点;可能是循环和
字符串修剪(这里我们只需要删除引号,因为这里的大括号似乎起到了引用机制的作用):

或:

或者,如果您喜欢使用以下正则表达式:


这看起来像是一个Tcl列表,其中内部大括号是由于元素中的
字符。因此,我们所需要做的就是对每个元素应用剥离命令(相当简单的
字符串修剪
)<代码>lmap
简化了这一过程:

set yourData {{"a/b"} {"c/d"} {"e/f"}}
set yourCleanData [lmap elem $yourData {
    string trim $elem \"
}]

这看起来像是一个Tcl列表,其中内括号是由于元素中的
字符。因此,我们所需要做的就是对每个元素应用剥离命令(相当简单的
字符串修剪
);
lmap
使这变得简单:

set yourData {{"a/b"} {"c/d"} {"e/f"}}
set yourCleanData [lmap elem $yourData {
    string trim $elem \"
}]

我试过集z{{“a/b”}{“c/d”}{“e/f”}集trimmed{uz[string trim$z'\'\'\'\}}{{e/fi试过集z{“a/b”}{“c/d”}{“e/f”}集trimmed{uz[string trim$z'\'\'\'\'\'\\\'\\\\\\\\\\}}}}}它给出了a/b{“c/d”{“e/d”}{“e/FSZ”{工作感谢在这种情况下,您可能想接受答案?设置clean_z[string map{\''\{\}'}$z]工作感谢在这种情况下,您可能想接受答案?
set z {{"a/b"} {"c/d"} {"e/f"}}
set cleaned_z ""
foreach n $z {
    lappend cleaned_z [string trim $n \"]
}
puts $cleaned_z
# a/b c/d e/f
package require struct
set z {{"a/b"} {"c/d"} {"e/f"}}
set cleaned_z [struct::list flatten $z]
# a/b c/d e/f
set z {{"a/b"} {"c/d"} {"e/f"}}
# I'm only escaping the quote so the syntax highlighting doesn't break, but it's not
# necessary
set cleaned_z [regsub -all {[\"{}]} $z ""]
# a/b c/d e/f
set yourData {{"a/b"} {"c/d"} {"e/f"}}
set yourCleanData [lmap elem $yourData {
    string trim $elem \"
}]