如何加入而不丢失特殊字符?

时间:2013-05-08 15:33:22

标签: tcl special-characters

我有以下字符串:

"name\r {} {} {} {} {} other_name other_name {} {} -600.0 {} {} 860.0 {} {} -"

(即带有特殊字符的字符串:\ r)。

当我join这行时,我失去了特殊的字符。

假设:

set name "name\r {} {} {} {} {} other_name other_name {} {} -600.0 {} {} 860.0 {} {} -"

set name [join $name]

现在名称正在丢失特殊字符(至少\r)。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我尝试了一些事情并想出了这个:

set name {name\r {} {} {} {} {} other_name other_name {} {} -600.0 {} {} 860.0 {} {} -}
# The braces prevent the substitution of \r

regsub -all {\\r} $name {\\\r} name
# This is a substitution using regexp to substitute all \r to \\r

set name [join $name]
# Returns: "name\r      other_name other_name   -600.0   860.0   -"

或者,如果您可能想要逃脱更多角色,请使用更通用的:

regsub -all {\\} $name {\\\\} name

代替。