我有以下字符串:
"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
)。
如何解决这个问题?
答案 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
代替。