一、介绍
字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令。一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较、搜索等操作。
二、string命令列表
命 令 |
说 明 |
string bytelength str |
返回用于存储字符串的字节数。 |
string compare ?-nocase? ?- length len? str1 str2 |
根据词典顺序比较字符串。-nocase 选项表示大小写无关。-length 选项表示只比较指定长度的开头部分字符。如果字符串相同就返回 0(str1=str2),如果 str1 的顺序比 str2 靠前就返回-1(str1<str2),其他情况返回 1(str1>str2)。 |
string equal ?-nocase? str1 str2 |
比较字符串,相同返回 1,否则返回 0。 |
string first str1 str2 |
返回在 str2 中 str1 第一次出现的索引位置,如果没有找到则返回-1 |
string index str index |
返回指定位置的字符。index 号从 0 开始。如果 index 为 end 则返回最后一个字符。 |
string is class?-strict? ?-failindex varname? str |
判断字符串的类型,如果是指定类型就返回 1。字符类型例如有整型、 布尔型等等。如果使用了-strict 则表示不匹配空字符,否则总是匹配的。如果指定了 failindex 则将 string 中非 class 的字符索引赋给 varname 变量。详细的字符类见后面的介绍(表 4-7)。 |
string last str1 str2 |
返回 str2 在 str1 最后一次出现的位置索引。没有搜索到就返回-1。 |
string length str |
返回 str 中的字符个数 |
string map ?-nocase? charMap str |
返回根据 charMap 中输入、输出列表将 str 中的字符进行映射后而产生的新字符串。参见本节“字符串映射”部分。 |
string match pattern str |
如果 str 匹配 pattern 就返回 1,否则返回 0。使用的是通配风格的匹配。参见本节的“字符串的匹配”部分。 |
string range str index1 index2 |
返回 str 中从 index1 到 index2 之间的字符串。 |
string repeat str count |
返回将 str 重复 count 次的字符串。 |
string replace str first last ?newstr? |
将从 first 开始到 last 结束的一段字符串替换为 newstr 字符串。如果 newstr 没有,则这部分字符串内容会被删除。 |
string tolower str ?first? ?last? |
将指定范围的字符转化为小写格式。 |
string totile str ?first? ?last? |
通过将第一个字符替换为 Unicode 的标题型字符或大写形式,而其余的替换为小写形式的方法将 str 转换为开始字母大写形式。可以用参数指定操作范围。 |
string toupper string ?first? ?last? |
将指定范围的字符转化为大写形式。 |
string trim str ?chars? |
从 str 两端删除 chars 中指定的字符。chars 默认为空字符。 |
string trimleft str ?chars? |
从 str 开头删除 chars 中指定的字符。chars 默认为空字符。 |
string trimright str ?chars? |
从 str 结尾删除 chars 中指定的字符。chars 默认为空字符。 |
string wordend str index |
返回 str 中在索引位置 index 包含字符的单词之后的字符的索引位置。 |
string wordstart str index |
返回 str 中在索引位置 index 包含字符的单词中第一个字符的索引位置。 |
说明: 命令中的两个问号之间的内容是任选项,表示根据实际需要可选的内容。字符串的这些命令的使用方法比较相似。常用的字符串操作有:
- string match:字符串匹配(或者比较);
- 大小写转换:tolower 和 totopper 以及 totile;
- equal 操作;
- string compare;
- string range;
- string replace 等。
时间: 2024-09-28 19:32:23