【发布时间】:2013-10-28 09:02:08
【问题描述】:
我在尝试读取 \\server\directory 之类的列表成员时遇到问题
当我尝试使用 lindex 命令获取此变量时出现问题,该命令会进行 TCL 替换,因此结果是:
\serverdirectory
然后,我想我需要使用regsub 命令来避免反斜杠替换,但我没有得到正确的过程。
我想要的一个例子应该是:
set mistring "\\server\directory"
regsub [appropriate regular expresion here]
puts "mistring: '$mistring'" ==> "mistring: '\\server\directory'"
我已经检查了一些与此相关的帖子,并保留 \\ 是可以的,但当我尝试始终保留一个 \ 后跟任何其他可能出现的字符时,我仍然遇到问题。
更新:具体示例。我实际上想要保留的是列表中元素的初始格式。该列表由外部应用程序接收。原来的代码是这样的:
set mytable $__outer_list_received
puts "Table: '$mytable'"
for { set i 0 } { $i < [llength $mitabla] } { incr i } {
set row [lindex $mytable $i]
puts "Row: '$row'"
set elements [lindex $row 0]
puts "Elements: '$elements'"
}
这个的输出,在这种情况下是:
Table: '{{
address \\server\directory
filename foo.bar
}}'
Row: '{
address \\server\directory
filename foo.bar
}'
Elements: '
address \\server\directory
filename foo.bar
'
所以我尝试获取地址的值(在这种特定情况下为\\server\directory),以便将其写入配置文件,保持原始格式和数据。
我希望这能澄清问题。
【问题讨论】: