innovus 字符替换操作 string

innovus对字符替换,有专门的命令 string,

目前string用起来感觉和tcl里的regexp,regsub类似,但比regexp  regsub用起来更简单,更好用,当然regexp,regsub在innovus里一样也支持的

string用法:

1.想要把某个字符串的第 0---最末尾 想换哪个字符就替换哪个字符

a.首先要得到要替换的字符在这个字符串的数组的第几位

ex:string  first  a  0a23456789abcdef    0

    返回1

string  first  a  0a23456789abcdef    1

也是返回1    意思是在字符串 0a23456789abcdef的,第0位,或者第1位开始找  first a,返回a的位置

string  first  a  0a23456789abcdef    2

string  first  a  0a23456789abcdef    3

string  first  a  0a23456789abcdef    5  。。。,都会返回10,因为从第二位开始找,找到第一个a的位置,a在第10位

string  last  a  0a23456789abcdef    也可以不带从哪里开始找,默认从0位开始找,这里表示最后一个a在第10位

b.替换字符串

 string  first   _   func_ffg0p88vm40c_rcbest_CCbest_m40c_hold   ####会返回4,表示第一个 _在第四位

string  replace   func_ffg0p88vm40c_rcbest_CCbest_m40c_hold    4  4   *    ####会返回func*ffg0p88vm40c_rcbest_CCbest_m40c_hold,  表示将字符串func_ffg0p88vm40c_rcbest_CCbest_m40c_hold的第4位开始到第4位结束,都换成*

string  replace   func_ffg0p88vm40c_rcbest_CCbest_m40c_hold    4  6   *    ####会返回func***g0p88vm40c_rcbest_CCbest_m40c_hold,  表示将字符串func_ffg0p88vm40c_rcbest_CCbest_m40c_hold的第4位开始到第6位结束,都换成*

ex: 把字符串func_ffg0p88vm40c_rcbest_CCbest_m40c_hold,去掉func_, 在去掉_hold,只保留delay_mode

set first  [string  first _   func_ffg0p88vm40c_rcbest_CCbest_m40c_hold]     ####--------》4

set delay_mode   [string replace  func_ffg0p88vm40c_rcbest_CCbest_m40c_hold  0  $first  ""]  ######----->ffg0p88vm40c_rcbest_CCbest_m40c_hold

set  last [string   last _   $delay_mode] ####---->31

set length [string length $delay_mode]  ###--->36

set delay_mode [string replace $delay_mode  $last  [expr $length -1]  "" ]  ####-----> ffg0p88vm40c_rcbest_CCbest_m40c

2.string  match

string  match   *ffg0p88vm40c_rcbest_CCbest_m40c*     func_ffg0p88vm40c_rcbest_CCbest_m40c_hold  会返回1

更多的可以自己去man  string

原文地址:https://www.cnblogs.com/learnsure/p/13141186.html