string

ReferenceTOPKeywords

コマンド名

string - 文字列を処理します。

構文

string option arg ?arg ...?

解説

option に応じていくつかの文字列操作の内の1つを行います。使用できるoption (省略可)は下記のとおりです。

string bytelength string
string compare ?-nocase? ?-length int? string1 string2
string equal ?-nocase? ?-length int? string1 string2
string first string1 string2 ?startIndex?
string index string charIndex
integer
end
end-integer
string is class ?-strict? ?-failindex varname? string
alnum
alpha
ascii
boolean
control
digit
double
false
graph
integer
lower
print
punct
space
true
upper
wordchar
xdigit
string last string1 string2 ?lastIndex?
string length string
string map ?-nocase? charMap string
string match ?-nocase? pattern string
*
?
[chars]
\x
string range string first last
string repeat string count
string replace string first last ?newstring?
string tolower string ?first? ?last?
string totitle string ?first? ?last?
string toupper string ?first? ?last?
string trim string ?chars?
string trimleft string ?chars?
string trimright string ?chars?
string wordend string charIndex
string wordstart string charIndex
string bytelength string 
メモリにおいてstring を表すもののバイト数を10進文字列で返します。Unicode 文字を表すためにUTF-8が1から3バイトまでを使うので、バイトの長さは一般的に文字の長さと同じではありません。 スクリプトがバイト長さのことを気にする場合は滅多にありません。ほとんど全ての場合には、string lengthオペレーション(Tcl ByteArrayオブジェクトの長さを判断定することを含む)を使うべきです。 UTF-8表現に関するより詳しい情報はTcl_NumUtfCharsマニュアルのエントリーを参照してください。

string compare ?-nocase ? ?-length int? string1 string2
文字列string1 string2 の文字ごとの比較を行います。 string1 が辞書順でstring2 より小さいか、等しいか、より大きいかに応じて-1、0、あるいは1を返します。 -lengthが指定されると、最初のlength 個文字のみが比較に使われます。-lengthが負なら無視されます。-nocaseが指定されると、文字列は大文字か小文字かを区別しないで比較されます。

string equal ?-nocase ? ?-length int?string1 string2
文字列string1 string2 の文字ごとの比較を行います。 string1string2 と同じ場合は1を返し、そうでないと0を返します。 -lengthが指定されると、最初のlength 個文字のみが比較に使われます。-lengthが負であると無視されます。-nocaseが指定されると、文字列は大文字か小文字かを区別 しないで比較されます。

string firststring1 string2 ?startIndex ?
string2 からstring1 内の文字に正確にマッチする文字のシーケンスを検索します。見つかるとstring2 内で最初にマッチした部分の最初文字のインデックスを返します。 見つからなければ、-1を返します。startIndex が指定される ( index によって受け入れられるフォーマットのうちのどれでも ) と、この検索は、string2 のインデックスによって指定された文字から始めます。例えば
string first a 0a23456789abcdef 5

10を返しますが、一方

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 class ?-strict? ?-failindex varname? string
string が指定された文字クラスの正当なメンバーならば1を返し、そうでないと0を返します。-strictが指定されると 空の文字列は0を返します。-strictがないと空の文字列はあらゆるクラスで1を返します。-failindexが指定されると関数が0を返す場合は、クラスが有効でない文字列におけるインデックスをvarname で指定された変数に格納されます。関数が1を返す場合はvarname は設定されません。次の文字クラスは認められます(クラス名が短縮できる)。

alnum
あらゆるUnicodeアルファベットか数字または文字。

alpha
あらゆるUnicodeアルファベット文字。

ascii
\u0080 ( 7ビットascii範囲にある)未満の値を持つあらゆる文字。

boolean
  Tcl_GetBooleanに許されるあらゆるフォーマット。

control
あらゆるUnicodeコントロール文字。

digit
あらゆるUnicode数字文字。注意すべきなのはこれが[ 0-9 ]範囲以外の文字も含むことです。

double
周りのスペースが省略可能なTclのdoubleタイプのいかなる正当なフォーマット。値がアンダー/オーバフローの場合には、0が返され、varname には-1が入ります。

false
その値が偽であるTcl_GetBooleanに許されるあらゆるフォーマット。

graph
スペースを除くあらゆるUnicodeのプリントできる文字。

integer
周りのスペースが省略可能なTclのintタイプのいかなる正当なフォーマット。値がアンダー/オーバフローの場合には、0が返され、varname には-1が入ります。

lower
あらゆるUnicode小文字のアルファベット文字。

print
スペースを含むあらゆるUnicodeのプリントできる文字。

punct
あらゆるUnicode句読点文字。

space
あらゆるUnicodeスペース文字。

true
その値が真であるTcl_GetBooleanに許されるあらゆるフォーマット。

upper
Unicode文字セットのあらゆる大文字のアルファベット文字。

wordchar
あらゆるUnicodeワード文字。それはあらゆる文字と数字文字、あらゆるUnicodeコネクタ句読点文字(例えば、下線アンダースコア です。)。

xdigit
あらゆる16進数の数字文字([ 0-9A-Fa-f ])。

booleantrueそしてfalse の場合に正当なブール値の多様な性質のため、 もし関数が0を返すと、varnameは常に0に設定されます 。

string last string1 string2 ?lastIndex ?
string2 からstring1 内の文字に正確に一致する文字のシーケンスを検索します。見つかるとstring2 内で最後に一致した部分の最初文字のインデックスを返します。適合するものがないと-1を返します。lastIndex が指定される ( index に受け入れられるフォーマットのうちのどれでも ) と、string2 lastIndex に指定された文字とその先頭に位 置する文字のみがこの検索で処理されます。 例えば
string last a 0a23456789abcdef 15

10を返します。しかし、

string last a 0a23456789abcdef 9

1を返します。

string length string 
string 内の文字の数を示す10進数文字列を返します。 これは必ずしも文字列を格納したバイトの数と同じであるとは限らないことにご注意しましょう。 オブジェクトがByteArrayなオブジェクト(例え、バイナリコード化されたチャネルを読むことから返されたもの) であると、オブジェクトの実際のバイト長さを返します。

string map ?-nocase?charMap string 
string の文字を、charMapに含まれる"キー - 値"ペアに基づいて置き換えします。charMap array get から返されたフォーマットと同じ、key value key vlaue のリストです。文字列のキーの各インスタンスは、対応する値に置き換えられます。-nocaseが指定されると、マッチングは小文字と大文字を区別せず行われます。key value の両方とも多重文字であることができます。置き換えは順番で行われます。従って、最初にリストに現れるキーは先にチェックされます。string は1度だけ繰り返されるので、初期のキー置き換えは後ほどのキーマッチに影響を及ぼしません。例えば
string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc

は文字列01321221を返します。

string match ?-nocase? pattern string 
pattern string にマッチするかどうかを確かめます。 マッチするならば1 を、 しないならば0を返します。-nocaseが指定されると、パターンは小文字大文字問わずに文字列にマッチしようと試みます。 2つの文字列の照合ではpattern に次の使える特別なシーケンスを除いて、マッチ内容は同一でなければなりません。

*
空文字列を含むstring 内のあらゆる文字シーケンスにマッチします。

?
string 内のあらゆる単独の文字にマッチします。

[chars]
char に与えられたセット内のどれかの文字にマッチします。x-y 形式のシーケンスが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は、文字列の最初の文字を参照します。first last index フォーマットで指定することができます。 first が0より小さい場合、0として扱われます。last が文字列の長さに等しいか、より大きいと、endとして扱われます。 first last より大きいと空文字列が返されます。

string repeat string count 
count 回繰り返してstring を返します。

string replace string first last ?newstring ?
string からfirst のインデックスの文字で始まり、last のインデックスの文字で終わる連続した文字の範囲を削除します。 インデックスの0は、文字列の最初の文字を参照します。first last index フォーマットで指定することができます。newstring が指定されると、削除される文字範囲に置かれます。 first が0より小さいと。0として扱われます。last が文字列の長さに等しいか、より大きいと、endとして扱われます。first last か始めの文字列の長さより大きいと、またはlast が0未満なら、一番目の文字列は触れられずに返されます。

string tolower string ?first ? ?last ?
すべての大文字(またはタイトル)が小文字に変換されることを除いて、string と等しい値を返します。first が指定されると文字列の修正を始める最初の文字インデックスを参照します。last が指定されると文字列修正が終わる文字インデックスを参照します。first last indexフォーマットで指定することができます。

string totitle string ?first ? ?last ?
string の最初の文字がそのUnicodeタイトルケースに変形((または、タイトルケース変形がない場合大文字)され、かつ文字列の残り部分が小文字に変換されることを除いて、string と等しい値を返します。first が指定されると文字列の修正を始める最初の文字インデックスを参照します。last が指定されると文字列修正を止まる最後の文字インデックスを参照します。first last indexフォーマットで指定することができます。

string toupper string ?first ? ?last ?
すべての小文字またはタイトル)が大文字に変換されることを除いてstring と等しい値を返します。first が指定されると文字列の修正を始める最初の文字インデックスを参照します。last  が指定されると文字列修正を止まる文字インデックスを参照します。first last indexフォーマットで指定することができます。

string trim string ?chars ?
先頭と末尾にあるcharsで与えられたセット内の文字が削除されることを除いてstring と等しい値を返します。 chars が指定されないと、空白(スペース、タブ、改行、そして キャリッジリターン)が削除されます。

string trimleft string ?chars ?
先頭にあるcharsで与えられたセット内の文字が削除されることを除いてstring と等しい値を返します。 chars が指定されないと、空白(スペース、タブ、改行、そして キャリッジリターン)が削除されます。

string trimright string ?chars ?
末尾にあるcharsで与えられたセット内の文字が削除されることを除いてstring と等しい値を返します。 chars が指定されないと、空白(スペース、タブ、改行、そして キャリッジリターン)が削除されます。

string wordend string charIndex
string の文字charIndex を含む単語の最後の文字の直後文字のインデックスを返します。charIndexindex フォーマットで指定することができます。 単語は英数字(Unicodeの英文字または数字)とアンダースコア(Unicodeのコネクタ句読点)が連続する範囲を指します。 あるいは、これら以外の単独の文字を指します。

string wordstart string charIndex
string の文字charIndex を含む単語の最初の文字のインデックスを返します。charIndexindexフォーマットで指定することができます。 単語は英数字(Unicodeの英文字または数字)とアンダースコア (Unicodeのコネクタ句読点)が連続する範囲を指します。あるいは、これら以外の単独の文字を指します。

参照

expr, list

キーワード

case conversion, compare, index, match, pattern, string, word, equal, ctype


Copyright © 1993 The Regents of the University of California. Copyright © 1994-1996 Sun Microsystems, Inc. Copyright © 1995-1997 Roger E. Critchlow Jr.