2

我有以下字符串:

"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)。

如何解决这个问题?

4

1 回答 1

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

反而。

于 2013-05-08T16:28:17.003 回答