我正在尝试从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答案 0 :(得分:1)
将您的STRING视为&#34; <^abs
&#34;,您的代码运行良好并替换。
或者你可以做
set replaced_string [string map {"^" ""} $STRING]
答案 1 :(得分:0)
这似乎是我试图做的,严格来说在纯TCL中是正确的。
这不起作用的原因是我正在使用的应用程序(Cloverleaf Integration Suite by Infor) - 它使用TCL作为脚本语言 - 正在执行它自己的& #34;处理&#34;在将字符串解析为我的TCL脚本之前。
感谢您提供的帮助。