string
Section: Tcl Built-In Commands (3tcl)
Updated: 8.1
查看本页索引
返回目录
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
将返回 10, but
-
string first a 0123456789abcdef 11
将返回 -1.
- 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 小写字母字符。.
- print
-
包括空格在内的任何 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
将返回 10, 而
-
string last a 0a23456789abcdef 9
将返回 1.
- 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
将返回字符串 01321221.
- 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
expr(n),
list(n)
关键字 KEYWORDS
case conversion, compare, index, match, pattern, string, word, equal, ctype
[中文版维护人]
寒蝉退士
[中文版最新更新]
2001/11/15
《中国 Linux 论坛 man 手册页翻译计划》:
http://cmpp.linuxforum.net (链接不可用)
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:
https://github.com/man-pages-zh/manpages-zh
Index
- NAME
-
- 总览 SYNOPSIS
-
- 描述 DESCRIPTION
-
- 参见 SEE ALSO
-
- 关键字 KEYWORDS
-
- [中文版维护人]
-
- [中文版最新更新]
-
- 《中国 Linux 论坛 man 手册页翻译计划》:
-
-
This document was created by
man2html,
using the manual pages.
Time: 03:16:56 GMT, July 01, 2024