我正在写一个TCL脚本,我想用/替换\。
#File directory
set fDir "U:\scripts"
#Replacment of \ with / in the directory path using regular expression
regsub -all {\\} $fDir {/} fDir
tk_messageBox -message $fDir
我得到的输出为: U:脚本
我希望输出为: U:/脚本
答案 0 :(得分:3)
如果使用单个反斜杠,则解释器会尝试从中构造转义序列。当它失败时,它只是去掉反斜杠:
% set fDir "U:\scripts"
U:scripts
要获得一个带反斜杠的字符串,您需要支持字符串或转义反斜杠:
% set fDir {U:\scripts}
U:\scripts
% set fDir U:\\scripts
U:\scripts
然后,您可以使用regsub
调用将反斜杠更改为斜杠。如果您觉得没有必要通过正则表达式走很长的路线,可以使用专用命令:
% set fDir [file normalize $fDir]
文档:
答案 1 :(得分:0)
尝试
#File directory
set fDir "U:\\scripts"
#Replacment of \ with / in the directory path using regular expression
regsub -all {\\} $fDir / fDir
puts $fDir
我在网上editor进行了测试,并且有效
结果是
U:/scripts