string - 操縱字串
string option arg ?
arg ...?
依賴於
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
連線符標點)字元,或除了這些之外的任何單一字元。
expr(n),
list(n)
case conversion, compare, index, match, pattern, string, word, equal, ctype
寒蟬退士
2001/11/15
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh