2022年的 Tcl/Tk 编程入门参考 9.字符串
String 命令
常用参数
-nocase 忽略大小写
string cat 字符串合并
直接把所有参数合并成一个字符串
string compare 根据字典顺序比较字符串先后顺序
string length字符串长度
string equal 字符串比较
string index提取指定位置字符
string index 字符串 索引位置
string repeat 字符串重复
string range 字符串提取
string range string first last
字符串替换
string replace 替换和删除
string map 批量替换
string map ?-nocase? mapping string
字符串变换
string reverse 反转
string tolower 转换为小写
string tolower string ?first? ?last?
string totitle首字母大写
string totitle string ?first? ?last?
string toupper 转换为大写字母
与小写转换语法相同 string toupper string ?first? ?last?
字符串查找
string first
没找到回返回 -1 找到返回下标(即从0开始计数的位置),注意,即使设置搜索起始的位置,返回下标也是从0开始计数
string last
string last needleString haystackString ?lastIndex?
从后往前找,但是返回的位置依然是从左往又数的位置,也就是正数的位置,不是倒数的位置
字符串修剪
string trim
从字符串的前后删除多余的字符(默认为空白,即空格和Tab)
string trimleft
与 trim 相同,但只删除开头的字符
string trimright
与 trim 相同,但只删除结尾的字符
模式匹配
string match
*通配符。匹配任意数量和值的任意字符 ?匹配一个字符 [chars] 匹配 chars 中的任意一个字符
字符串类型验证
string is class ?-strict? ?-failindex varname? string
严重字符串是否属于某种类型,比如布尔值:
过时的子命令
string bytelength string string wordend string charIndex string wordstart string charIndex
其它字符串命令
append 追加
append的作用,是在变量值后面追加字符串。它要求一个变量名作为必要参数,后面跟多个可选参数作为追加内容 当仅仅给出变量名这一个参数,append命令会返回变量值,就跟set命令一样。但如果变量不存在,就会报错。如果给出追加参数,就会在变量值后面追加内容。这种情况下如果变量不存在,会先自动创建变量。
append 变量名 ?追加1? ?追加2? ?追加3? ...
format
一部分功能类似于python的 f 字符串,把后续内容以指定格式插入到字符串中的指定位置。但是如果仅仅是插入的话,用变量替换更简单,它实际用于字符串变形。format 对字符串进行各种变形操作,用标识符来设定格式,标识符以%开头,直接看使用例子吧:
scan
跟format相反,scan把字符串的各个部分摘出来,分别赋值给后续变量(省略变量时可以用于检测是否与给出形式匹配)scan是从左往右匹配,开头的必须指定,右侧即后续的匹配可以省略。给出变量名时,变量名必须跟%识别符的数目匹配,scan返回匹配的数目。省略变量名时,scan返回匹配的内容,用空格间隔。

