![b6228d53ca7b866a9fa884c044617b35.gif](https://i-blog.csdnimg.cn/blog_migrate/f144603b0b80ba2f6455f72a7f428cb1.gif)
延伸阅读:Tcl字符串操作基础1
![b6228d53ca7b866a9fa884c044617b35.gif](https://i-blog.csdnimg.cn/blog_migrate/f144603b0b80ba2f6455f72a7f428cb1.gif)
subst 命令在字符串中搜索方括号、美元符号和反斜杠,并对其进行替换操作,而对其他数据不做处理。字符串内部的花括号对这种替换操作不阻止。
例1:
![b6228d53ca7b866a9fa884c044617b35.gif](https://i-blog.csdnimg.cn/blog_migrate/f144603b0b80ba2f6455f72a7f428cb1.gif)
字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令。一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较、搜索等操作。本节的 string 命令提供了一些简单的模式匹配机制。而正则表达式则提供了更为复杂、更为强大的模式匹配机制。
string命令用法列表,每一种用法可以看成子命令(sub commond)
字符串的这些命令的使用方法比较相似。常用的字符串操作有:
- string match:字符串匹配(或者比较);
- 大小写转换:tolower 和 totopper 以及 totile;
- equal 操作;
- string compare;
- string range;
- string replace 等。
例1:字符串比较
string compare返回0表示相同。其他数字则为不同。
-nocse为可选项,表示忽略大小写。
string equal返回0时表示字符串不相同,返回1表示相同。
例2:字符串匹配
匹配字符结构
为了使结果返回 1(匹配), pattern 和字符 str 必须相同,除非你是使用了匹配字符。
例3:字符串替换
例4:字符串类别测试
字符串类别
string is 命令用来测试一个字符串是否属于某个特定的类( class)。它对于进行参数输入合法性检查非常有效。比如,要确保输入参数是整数,则可以这么做:
例5:字符串映射
string map 命令根据字符映射对字符串进行转换。映射以输入、输出表的形式表示。凡是字符串中包含有输入序列的地方都使用相应的输出序列替换。输入、输出要成对使用。
上例命令中 {f b d l}为输入、输出表,输入、输出项成对出现:f、 b 为输入, p、 l 为输出,f对应 b,而 d 对应 l。命令的结果是字符串 fill 中的 f 被 p 替换, d 被 l 替换。
输入和输出项可不止一个字符而且不要求长度相同。
![68c5c3060f47d0ba443a64f84e1f9b04.gif](https://i-blog.csdnimg.cn/blog_migrate/e9e2cd8dd35d3131677a82a496795131.gif)