String TCL替换字符串中的^
我正在尝试从TCL中的字符串中提取一个不需要的字符 我的字符串包含一个克拉符号(^),我需要去掉它 但是,我怀疑可能需要以不同的方式处理“^”(可能是转义?),因为当我首先使用字符串进行搜索时,得到的输出是“-1”(即false/不存在) 我知道我做的是对的,因为如果我先在另一个字符上做一个字符串,我会得到预期的输出位置String TCL替换字符串中的^,string,search,replace,tcl,String,Search,Replace,Tcl,我正在尝试从TCL中的字符串中提取一个不需要的字符 我的字符串包含一个克拉符号(^),我需要去掉它 但是,我怀疑可能需要以不同的方式处理“^”(可能是转义?),因为当我首先使用字符串进行搜索时,得到的输出是“-1”(即false/不存在) 我知道我做的是对的,因为如果我先在另一个字符上做一个字符串,我会得到预期的输出位置 STRING: "<^abs" Intended output: "<abs" 该问题具体涉及上述代码的第一行。如前所述,$pos的输出为-1,即使是^exist
STRING: "<^abs"
Intended output: "<abs"
该问题具体涉及上述代码的第一行。如前所述,$pos的输出为-1,即使是^exists的输出也将字符串视为“
”,这似乎是我试图做的,严格来说在纯TCL中是正确的
这不起作用的原因是,我使用的应用程序(by)——它使用TCL作为脚本语言——在将字符串解析为我的TCL脚本之前,正在执行自己的“处理”
感谢您提供的帮助。。这是我所期望的,但我正在使用的应用程序是,它使用TCL作为脚本语言,正是它为我提供了上述结果。感谢您的帮助。回到绘图板上,然后您没有提供有关此问题的足够数据。您在哪个应用程序中使用它?对此表示歉意t、 我没有意识到在将我的字符串中继到TCL脚本之前,应用程序会以不同的方式处理事情。我在其中运行的应用程序是立体式集成套件,正如下面我自己的回答所详细说明的那样。字符串映射
正是我要做的。OP:注意,字符串映射
替换了所有发生的字符串的重复,而不仅仅是第一个。如果只替换第一个字符串,string replace
或regsub
更好。
set pos [string first "^" $STRING]
set replaced_string [string replace $STRING $pos $pos ""]
puts $replaced_string
set replaced_string [string map {"^" ""} $STRING]