按选项卡拆分的Tcl(\t)

按选项卡拆分的Tcl(\t),tcl,Tcl,我正在尝试按制表符(\t)拆分Tcl字符串 请考虑以下采样字符串< /代码>: I . am -> a . programmer # let "." be spaces and "->" be tabs 如果我尝试执行以下操作: set myVar [split $sampleString "\t"] Tcl也将按空格分割,而不仅仅是标签 如何仅按选项卡拆分 谢谢我怀疑您只是对正在查看的输出有点困惑 % set s "I am\ta programmer" I am a p

我正在尝试按制表符(\t)拆分Tcl字符串

请考虑以下<代码>采样字符串< /代码>:

I . am -> a . programmer # let "." be spaces and "->" be tabs
如果我尝试执行以下操作:

set myVar [split $sampleString "\t"]
Tcl也将按空格分割,而不仅仅是标签

如何仅按选项卡拆分


谢谢

我怀疑您只是对正在查看的输出有点困惑

% set s "I am\ta programmer"
I am    a programmer
% split $s
I am a programmer
% split $s "\t"
{I am} {a programmer}

两个
split
s之间的唯一区别在于,没有可选的第二个参数,split集是“all whitespace”(对于“all”的合理定义),由于这里没有显式的写回,所以拆分都不会影响变量中的值。

我怀疑您只是对正在查看的输出有点困惑

% set s "I am\ta programmer"
I am    a programmer
% split $s
I am a programmer
% split $s "\t"
{I am} {a programmer}

两个
split
s之间的唯一区别是,如果没有可选的第二个参数,split集是“all whitespace”(对于“all”的合理定义),并且
split
都不会影响变量中的值,因为这里没有显式的写回。

这是一些wierd行为……我自己刚刚测试过它,这对我来说很好。你把问题简化了吗?如果是这样,您可能希望发布更多原始问题,因为问题在别处…
%set sampleString{I am->a programmer}
输出
I am->a programmer
。然后,
%set myVar[split$sampleString“\t”]
输出
{I}{am->a}{programmer}
。或许,您可以发布您的代码片段,以便其他人可以提供帮助。我试了一下你的建议,发现绳子被正确地分开了。这是一些古怪的行为…我自己测试了一下,它对我来说很好。你把问题简化了吗?如果是这样,您可能希望发布更多原始问题,因为问题在别处…
%set sampleString{I am->a programmer}
输出
I am->a programmer
。然后,
%set myVar[split$sampleString“\t”]
输出
{I}{am->a}{programmer}
。或许,您可以发布您的代码片段,以便其他人可以提供帮助。我试了一下你的建议,发现绳子被正确地分开了。