如何用tcl脚本替换字符串中的特定字符?

Har*_*nfi 3 string tcl character-replacement

set some_string "Name/is/ComplexSTRUCTUre" 
Run Code Online (Sandbox Code Playgroud)

将此字符串转换为

some_string = "Name/is/ComplexSTR.CTUre" 
Run Code Online (Sandbox Code Playgroud)

即首先替换"U""."

mf_*_*041 8

试试这个,

set replaced_string [regsub "U" $some_string "."]
puts $replaced_string
Run Code Online (Sandbox Code Playgroud)

另外一个选项,

set pos [string first "U" $some_string]
set replaced_string [string replace $some_string $pos $pos "."]
puts $replaced_string
Run Code Online (Sandbox Code Playgroud)

这里你的"Name/is"部分不应包含任何内容"U"

更多信息可以在这里找到tcl string replacement


Mik*_* T. 5

regsub对于普通字符串来说,使用是过度的。如果您只是想用另一组子字符串替换一组子字符串,string map那么您的朋友:

set s "Name/is/ComplexSTRUCTUre"

set s [string map {U .} $s]
Run Code Online (Sandbox Code Playgroud)

然而,正如您的问题标题所示,这将用点替换所有我们。

但是,如果您只想替换第一个U - 正如问题文本所暗示的那样,那么 AxT_8041 的第二个选项是最合适的。