5.8 format 创建字符串
format "The square root of 10 is %.3f" [expr sqrt(10)]
平方根 sqrt
5.9 用scan解析字符串 (下例为将一个数强制转化为十进制的数字)
proc forceDecimal {x} {
set count [scan $x {%11d %c} n c]
if {$count !=1}{
error "not an interger: \" $x\" "
}
return $n
}
5.10 通配符样式的匹配模式
* 任意字符
?一个任意字符
[chars] 其中任意一个字符
5.11 正则表达式进行模式匹配
\d 十进制数字 \D 非十进制数字
\s 空白字符 \S 非空白
\w 字母和数字 \W 非字母和数字
regexp -start "字符串" 从该位置开始查找匹配 -all 查找尽量多从的匹配,并返回匹配次数
-nocase 不区分大小写 -indices
5.12 使用正则表达式进行替换 regsub
regsub there "They live there lives" their x 用their替换了there,并将替换后的整个字符串赋给x
同样默认仅替换一次,命令可以加一个或多个选项. -all -nocase -start -line 以及用-- 来表示命令选项结束。& 和\0 都代表第一个匹配成功的字符串。
5.15 二进制字符串
binary format 和binart scan 命令支持的格式类型