總覽 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
《中國 Linux 論壇 man
手冊頁翻譯計劃》:
http://cmpp.linuxforum.net
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh