TCL在字符串中替换^

时间:2017-09-04 11:49:48

标签: string search replace tcl

我正在尝试从TCL中的字符串中执行一个不需要的字符。

我的字符串包含一个克拉符号(^),我需要将其删除。

但是,我怀疑^可能需要处理不同(可能是转义?),因为当我使用STRING FIRST搜索时,我得到“-1”的输出(即假/不存在)。

我知道我做的是正确的,因为如果我在另一个charachter上做一个STRING FIRST,我会得到预期的位置作为输出。

STRING: "<^abs"
Intended output: "<abs"
set pos [string first "^" $STRING]
set replaced_string [string replace $STRING $pos $pos ""]
puts $replaced_string

该问题具体涉及上述代码的第一行。如前所述,即使那些^存在

,$ pos的输出也是-1

2 个答案:

答案 0 :(得分:1)

将您的STRING视为&#34; <^abs&#34;,您的代码运行良好并替换。 或者你可以做

set replaced_string [string map {"^" ""} $STRING]

答案 1 :(得分:0)

这似乎是我试图做的,严格来说在纯TCL中是正确的。

这不起作用的原因是我正在使用的应用程序(Cloverleaf Integration Suite by Infor) - 它使用TCL作为脚本语言 - 正在执行它自己的& #34;处理&#34;在将字符串解析为我的TCL脚本之前。

感谢您提供的帮助。