6
set some_string "Name/is/ComplexSTRUCTUre" 

将此字符串转换为,

some_string = "Name/is/ComplexSTR.CTUre" 

即先替换"U""."

4

3 回答 3

11

尝试这个,

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 字符串替换

于 2016-05-02T13:49:30.590 回答
5

regsub对于纯字符串,使用是过分的。如果您只是想用另一组子字符串替换一组子字符串,string map您的朋友是:

set s "Name/is/ComplexSTRUCTUre"

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

但是,这将用点替换所有Us - 正如您问题的标题所暗示的那样。

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

于 2016-05-06T16:17:27.537 回答
0

您可以使用:

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>
于 2019-07-11T10:13:19.030 回答