【发布时间】:2016-08-27 07:24:30
【问题描述】:
set some_string "Name/is/ComplexSTRUCTUre"
将此字符串转换为,
some_string = "Name/is/ComplexSTR.CTUre"
即将第一个 "U" 替换为 "."
【问题讨论】:
标签: string tcl character-replacement
set some_string "Name/is/ComplexSTRUCTUre"
将此字符串转换为,
some_string = "Name/is/ComplexSTR.CTUre"
即将第一个 "U" 替换为 "."
【问题讨论】:
标签: string tcl character-replacement
你可以使用:
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>
【讨论】:
regsub 的使用对于纯字符串来说太过分了。如果您只是想用另一组子字符串替换一组子字符串,string map 是您的朋友:
set s "Name/is/ComplexSTRUCTUre"
set s [string map {U .} $s]
然而,这将用点替换 all Us -- 正如您问题的 title 所暗示的那样。
但是,如果您只想替换 第一个 U - 正如您问题的 文本 所暗示的那样,那么 AxT_8041 的第二个选项是最合适的。
【讨论】:
string map 不允许用户仅更改第一次出现。它会用 dot 更改每次出现的 U,这不是 OP 的需要。不过,如果您想更改所有出现的情况,string map 是不错的选择
试试这个,
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
【讨论】: