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

How to replace particular character in string with tcl script?

set some_string "Name/is/ComplexSTRUCTUre" 

将此字符串转换为,

some_string = "Name/is/ComplexSTR.CTUre" 

即先将 "U" 替换为 "."

试试这个,

set replaced_string [regsub "U" $some_string "."]
puts $replaced_string

另一种选择,

set pos [string first "U" $some_string]
set replaced_string [string replace $some_string $pos $pos "."]
puts $replaced_string

此处您的 "Name/is" 部分不应包含任何 "U"

可以在此处找到更多信息tcl string replacement

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

set s "Name/is/ComplexSTRUCTUre"

set s [string map {U .} $s]

然而,这将用点替换 all Us -- 正如你的问题的 title 所暗示的那样。

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

您可以使用:

string replace <num1> <num2> <To_be_replaced>

示例:

set a [get_attr [get_cells -filter <cell_name> ] ref_name]
<cell_name>

string replace 5 8 NAME
<cell_NAME>