Tcl学习之--字符串
【字符串操作】
Tcl的精髓在于对字符串的处理,非常多函数非常实用。特别是正則表達式。以下列出其经常使用的函数.
l sting index: --> 索引
l sting range: --> 范围
l sting length: --> 长度
l sting toupper 和string tolower: --> 大写和小写
l sting trim、 trimleft, trimright: --> 剪裁
三种剪裁方式。每种方式都须要两个參数:指定字符串,指定裁剪方式. trim: 把在开头和结尾出现要剪裁的字符删去,返回删除后的结果:
l string repeat: --> 反复
l sting first和 string last: --> 搜索
两个都是简单搜索,找到后返回索引值,假设找不到。则返回-1;
l sting compare和string equal: -->比較
stingcompare: 读入两个參数,并对其进行比較。
1) 假设两个字符串同样,返回0
2) 假设第一个字符串在字典中小于第二个,则返回-1
3) 假设第一个字符串在字典中顺序大于第二个,返回1
stringequal: 对两个字符串进行简单的字符串比較。严格相同,返回1, 否则返回0,该命令相同区分大写和小写,除非加-nocase选项。还能够设置-length选项,仅仅对指定长度个字符比較.
l sting replace和string map: --> 置换
stringreplace: 简单替换
stringmap: 依据字典将字符串中的对应文本置换为某个值。语法:
stringmap dictionary string
l sting is: --> 类型推断
1) 假设为指定的类型,返回1
2) 假设非指定的类型,返回0
l format: --> 字符串格式化
和C中的非常printf非常相像,作用却没那么大.经常使用以下几种方式:
%s: 字符串
%f: 浮点型
%d: 整数型
%x: 十六进制
l scan: --> 字符串解析
format的逆操作,就好比列表中join, split一样。
它从一个有格式的字符串控制下解析这个字符串,把这些变成字符串相相应的字段,置于Tcl变量中.
上面2代表成功完毕两次转换.
l string match: --> 模式匹配
Tcl有两种模式匹配方式。一种简单,一种复杂。
简单: 通配符模式
复杂: 正則表達式
stringmatch就是一种通配符匹配模式,成功返回1,否则返回0
stringmatch ?-nocase? pattern string
l 正則表達式: --> 复杂模式匹配
regexp: -->获取
一般使用方法:获取两个參数。正則表達式模式和输入字符串,返回0,1
经常使用使用方法:输入字符串后存放很多其它变量,用于放置匹配到的字符串
regsub: --> 替换
第一个參数: 正則表達式模式
第二个參数: 输入字符串,返回0,1
第三个參数: 替换字符串
第四个參数: 替换后的字符串
经常使用选项:
-all: 找到全部匹配的选项,返回匹配到的次数
-nocase:不区分大写和小写
-line:多行匹配开关
--:明白标识命令选项结束
-start:指定字符中一个字符的索引
注意: \代表特殊含义的字符,\2代表匹配到的第二个子组baa, b,
所以{z\2}真正的意思就是用z->a,假设匹配到baa,b则不做处理。