table of contents
other languages
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¶
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
8.1 | Tcl |