table of contents
other sections
string(3tcl) | Tcl Built-In Commands | string(3tcl) |
NAME¶
string - 操纵字符串
总览 SYNOPSIS¶
string option arg ?arg ...?
描述 DESCRIPTION¶
依赖于 option (选项)进行某种字符串操作。合法的 option (可以是缩写)有:
- string bytelength string
- 返回一个十进制字符串,给出在内存中表示 string 用的字节数。因为 UTF-8 使用一到三字节来表示 Unicode 字符,字节长度可能与通常的字符长度不同。一个脚本关心字节长度的情况较少见。多数情况下,你应该使用 string length 操作。关于 UTF-8 表示的详情请参考 Tcl_NumUtfChars 手册页。
- string compare ?-nocase? ?-length int? string1 string2
- 对字符串 string1 和 string2 进行逐个字符的比较。依赖于 string1 在词典顺序上(lexicographically)小于、等于、大于 string2,返回 -1、0、或 1。 如果指定了 -length ,则在比较中只使用前 length 个字符。如果 -length 是负数,则被忽略。如果指定了 -nocase ,则使用大小写不敏感方式比较字符串。
- string equal ?-nocase? ?-length int? string1 string2
- 对字符串 string1 和 string2 进行逐个字符的比较。如果 string1 和 string2 等同则返回 1,否则返回 0。如果指定了 -length ,则在比较中只使用前 length 个字符。如果 -length 是负数,则被忽略。如果指定了 -nocase ,则使用大小写不敏感方式比较字符串。
- string first string1 string2 ?startIndex?
- 在 string2 中查找精确的匹配 string1 中的字符的一个字符序列。如果找到,返回 string2 中的第一个这样的匹配的第一个字符的索引。如果未找到,返回 -1。 如果指定了 startIndex (以可被 index 方法接受的任何形式),则约束查找为在 string2 中从用索引指定的字符开始。例如,
string first a 0a23456789abcdef 5
string first a 0123456789abcdef 11
- string index string charIndex
- 返回 string 参数的第
charIndex 个字符。charIndex 中
0
对应着字符串的第一个字符。
charIndex 可以被指定如下:
- integer
- 用整数索引指定字符。
- end
- 字符串的最后一个字符。
- end-integer
- 字符串最后一个字符减去指定整数偏移量(例如, end-1 将参照“abcd”中的“c”)。
如果 charIndex 小于 0 或大于等于字符串的长度则返回一个空串。
- string is class ?-strict? ?-failindex varname? string
- 如果 string 是指定字符类的一个有效成员则返回 1,否则返回 0。如果指定了 -strict,则对一个空串返回 0,否则在任何类上对一个空串返回 1。如果指定了 -failindex,则若函数返回 0,把字符串中类不再有效的地方的索引存储到叫做 varname 的变量中。如果函数返回 1则不设置 varname 。识别下列字符类(类的名字可以被缩写):
- alnum
- 任何 Unicode 字母或数字字符。
- alpha
- 任何 Unicode 字母字符。
- ascii
- 值小于 \u0080 的任何字符(这是 7-bit ascii 的范围)。
- boolean
- Tcl_GetBoolean 所允许的任何形式。
- control
- 任何 Unicode 控制字符。
- digit
- 任何 Unicode 数字字符。注意这包括在 [0-9] 范围外的字符。
- double
- 双精度数在 Tcl 中的任何有效形式,可以有可选的围绕白空格。在值下溢/上溢的情况下,返回 0 并且 varname 将包含 -1。
- false
- Tcl_GetBoolean 允许的任何形式,这里的值是假。
- graph
- 除了空格之外的任何 Unicode 打印字符。
- integer
- 整数在 Tcl 中的任何有效形式,可以有可选的围绕白空格。在值下溢/上溢的情况下,返回 0 并且 varname 将包含 -1。
- lower
- 任何 Unicode 小写字母字符。.
- 包括空格在内的任何 Unicode 打印字符。
- punct
- 任何 Unicode 标点字符。
- space
- 任何 Unicode 空格字符。
- true
- Tcl_GetBoolean 所允许的任何形式,这里的值是真。
- upper
- 在 Unicode 中的任何大写字符。
- wordchar
- 任何 Unicode 单字字符。它是任何字母字符和 Unicode 连接符标点字符(例如,下划线)。
- xdigit
- 任何十六进制数字字符 ([0-9A-Fa-f]).
在 boolean、true 和 false 的情况下,如果函数将返回 0,则 varname 总是被设置为 0,原因是一个有效 boolean 值有多种本地(表示)。
- string last string1 string2 ?startIndex?
- 在 string2 中查找精确的匹配在 string1 中的字符的一个字符序列。如果找到,返回在 string2 中最后一个这样的匹配的第一个字符的索引。如果没有匹配,则返回 -1。 如果指定了 startIndex(以可被 index 方法接受的任何形式), 则查找只针对 string2 中用 startIndex 指定的和此前的字符。例如,
string last a 0a23456789abcdef 15
string last a 0a23456789abcdef 9
- string length string
- 返回一个十进制字符串,给出在 string 中字符的数目。注意这不是必须与用于存储这个字符串的字节的数目相同。
- string map ?-nocase? charMap string
- 基于在 charMap 中的键-值对替代 string 中的字符。charMap 是形如 key value key value ... 的一个列表,同于从 array get 返回的那种形式。在字符串中这些键的每个实例将被替代为相应的值。如果指定了 -nocase,则进行匹配时不区别大小写。key 和 value 二者都可以是多字节的。以一种有次序的方式进行替代,所以在列表中出现在最前面的键将被首先检查,以此类推。string 只被重复操作(iterate)一次,所以早先的键替代将不影响以后的键匹配。例如,
string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc
- string match ?-nocase? pattern string
- 查看 pattern 是否匹配 string;如果是则返回 1,不是则返回 0。 如果指定了 -nocase,则针对字符串的模式匹配采用大小写不敏感的方式。 对于要进行匹配的这两个字符串,除了在 pattern 中可以出现的下列特殊序列之外它们的内容必须相同:
- *
- 匹配 string 中任何字符的一个序列,包括一个空字符。
- ?
- 匹配 string 中的一个单一字符。
- [chars]
- 匹配在用 chars 给出的集合中的任何字符。如果在 chars 中出现一个形式是 x-y 的一个序列,则匹配在 x 和 y,之间的任何字符,包括二者。 当与 -nocase 一起使用的时候,范围的端点首先被转换为小写。所以在大小写敏感匹配时 {[A-z]} 匹配‘_’(‘_’位于‘Z’和‘a’之间),加上 -nocase 则将被象 {[A-Za-z]} 那样对待(并可能是前者的真实意图)。
- \x
- 匹配单一字符 x。这提供了一种方式避免在 pattern 中对字符 *?[]\ 做特殊解释。
- string range string first last
- 从 string 返回一个范围的连续字符,从索引是 first 的字符开始并结束于索引是 last 的字符。 索引 0 参照字符串的 第一个字符。可以按 index 方法的方式指定 first 和 last 。 如果 first 小于零,则把它作为零对待,而如果 last 大于等于字符串的长度,则把它作为 end 对待。如果 first 大于 last 则返回空串。
- string repeat string count
- 把 string 重复 count 次后返回。
- string replace string first last ?newstring?
- 从 string 删除一个范围的连续字符,范围从索引是 first 的字符开始并结束于索引是 last 的字符。索引 0 参照字符串的第一个字符。可以按 index 方法的方式指定 first 和 last 。如果指定了 newstring ,则把它放置在删除的字符范围中。如果 first 小于零,则把它作为零对待,而如果 last 大于等于字符串的长度,则把它作为 end 对待。如果 first 大于 last 或最初的字符串的长度 ,或者 last 小于 0,则不做变动的返回最初的字符串。
- string tolower string ?first? ?last?
- 返回一个等同于 string 的值,但所有大写(或标题)字母都被转换为小写。如果指定了 first,则它参照字符串中开始修改的第一个字符的索引。如果指定了 last,则它参照字符串中修改停止到(包括它)的那个字符的索引。按 index 方法的方式指定 first 和 last。
- string totitle string ?first? ?last?
- 返回等同于 string 的一个值,但把 string 的第一个字符转换成它的 Unicode 标题大写变体(如果没有标题大写变体则为大写)而把字符串的其余部分转换成小写。如果指定了 first,则它参照字符串中开始修改的第一个字符的索引。如果指定了 last,则它参照字符串中修改停止到(包括它)的那个字符的索引。按 index 方法的方式指定 first 和 last。
- string toupper string ?first? ?last?
- 返回一个等同于 string 的值,但所有小写(或标题)字母都被转换为大写。如果指定了 first,则它参照字符串中开始修改的第一个字符的索引。如果指定了 last,则它参照字符串中修改停止到(包括它)的那个字符的索引。按 index 方法的方式指定 first 和 last。
- string trim string ?chars?
- 返回一个等同于 string 的值,但删除了任何前导或尾随的用 chars 给出的字符集合中字符。如果未指定 chars 则删除白空格(空格、tab、换行、回车)。
- string trimleft string ?chars?
- 返回一个等同于 string 的值,但删除了任何前导的用 chars 给出的字符集合中字符。如果未指定 chars 则删除白空格(空格、tab、换行、回车)。
- string trimright string ?chars?
- 返回一个等同于 string 的值,但删除了任何尾随的用 chars 给出的字符集合中字符。如果未指定 chars 则删除白空格(空格、tab、换行、回车)。
- string wordend string charIndex
- 返回包含 string 的第 charIndex 个字符的那个字最后的字符后面的那个字符的索引。按 index 方法的方式指定 charIndex 。一个字被认为是任何连续范围的 alphanumeric (Unicode 字母或十进制数字)或下划线(Unicode 连接符标点)字符,或除了这些之外的任何单一字符。
- string wordstart string charIndex
- 返回包含 string 的第 charIndex 个字符的那个字的第一个字符的索引。按 index 方法的方式指定 charIndex 。一个字被认为是任何连续范围的 alphanumeric (Unicode 字母或十进制数字)或下划线(Unicode 连接符标点)字符,或除了这些之外的任何单一字符。
参见 SEE ALSO¶
关键字 KEYWORDS¶
case conversion, compare, index, match, pattern, string, word, equal, ctype
[中文版维护人]¶
寒蝉退士
[中文版最新更新]¶
2001/11/15
《中国 Linux 论坛 man 手册页翻译计划》:¶
8.1 | Tcl |