【发布时间】:2013-08-04 18:21:17
【问题描述】:
我正在尝试编写一段极其简单的代码,但 tcl 不合作。我只能想象我的代码中缺少一个非常简单的错误,但我完全不知道它可能是什么,请帮助我很沮丧!
我的代码如下...
proc substitution {stringToSub} {
set afterSub $stringToSub
regsub {^.*?/projects} "$stringToSub" "//Path/projects" afterSub
regsub {C:/projects} "$stringToSub" "//Path/projects" afterSub
return $afterSub
}
puts "[substitution /projects] "
puts "[substitution C:/projects] "
替换对第二个表达式有效,但对第一个表达式无效。这是为什么?? 我也尝试过使用
regsub {^/projects} "$stringToSub" "//Path/projects" afterSub
和
regsub {/projects} "$stringToSub" "//Path/projects" afterSub
但两者都不起作用。怎么回事??
【问题讨论】:
-
当您说“适用于第二个表达式”时,您是指
substitution过程中的第二个regsub调用还是您指的是subsitution方法的第二个调用?此外,在它“不起作用”的情况下,您会得到什么结果以及您期望什么? -
我想我的意思是两者。当我使用 puts "[substitution C:/projects] " 时,输出是 "//Path/projects",这就是我想要的。但是,当我使用 puts "[substitution /projects] " 时,输出是 "/projects",所以我想要的替换不会发生。