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

时间:2016-05-02 13:45:05

标签: string tcl character-replacement

set some_string "Name/is/ComplexSTRUCTUre" 

将此字符串转换为

some_string = "Name/is/ComplexSTR.CTUre" 

即将第一个"U"替换为"."

3 个答案:

答案 0 :(得分:7)

试试这个,

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

答案 1 :(得分:1)

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

set s "Name/is/ComplexSTRUCTUre"

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

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

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

答案 2 :(得分: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>