【问题标题】:How to replace particular character in string with tcl script?如何用 tcl 脚本替换字符串中的特定字符?
【发布时间】:2016-08-27 07:24:30
【问题描述】:
set some_string "Name/is/ComplexSTRUCTUre" 

将此字符串转换为,

some_string = "Name/is/ComplexSTR.CTUre" 

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

【问题讨论】:

    标签: string tcl character-replacement


    【解决方案1】:

    你可以使用:

    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>
    

    【讨论】:

      【解决方案2】:

      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 是不错的选择
      【解决方案3】:

      试试这个,

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-24
        • 1970-01-01
        • 2012-08-09
        相关资源
        最近更新 更多