0

这个代码示例应该做什么?

set l { A B C D }
lreplace $l 1 2 \[ \]

它返回{A {[} \] D},但我想拥有{A [ ] D}

我究竟做错了什么?

4

1 回答 1

4

您的代码完全符合您的要求,您只是在阅读输出的字符串 rep 并误解了它:

% set l { A B C D }
 A B C D 
% foreach elem $l { puts $elem }
A
B
C
D
% set j [lreplace $l 1 2 \[ \]]
A {[} \] D
% foreach elem $j { puts $elem }
A
[
]
D
% join $j
A [ ] D

当您阅读字符串 rep 时,您会看到它转义了 [ 和 ]。正如您从 foreach 输出中看到的那样,实际值就是您所要求的。如果您想要的只是一个带有相关字符的字符串,您可以使用它join来获取您感兴趣的字符串。

于 2012-02-22T14:12:23.817 回答