table of contents
other languages
- English tcl9.0-doc
- English tcl8.6-doc
- 中文 (zh-CN)
- 繁體中文 (zh-TW)
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 手冊頁翻譯計劃》:¶
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
8.1 | Tcl |