ページの先頭行へ戻る
Systemwalker Centric Manager API・スクリプトガイド

6.3.19 string(文字列を操作する)

機能説明

文字列に対して、比較、取り出し、変換、切断などの操作を行います。

記述形式

string option argarg ....

オプション

option

操作内容を指定する、オプションキーワードを指定します。指定可能なオプションの指定方法と説明を以下に示します。

arg

操作に必要な引数を指定します。


表6.1 オプションごとの説明

string compare string1 string2

文字列を比較します。

string1が辞書順でstring2より小さいか等しいか大きいかにより、それぞれ-1、0、1を返します。

string first string1 string2

string2の中にstring1が出現するかを調べます。
見つかればstring2の中の最初にstring1が出現した場所(先頭文字のインデックス(注))を返します。見つからなければ-1を返します。

string index string charIndex

stringの中のcharIndexで示される場所(インデックス(注))の文字を返します。

string last string1 string2

string2の中にstring1が出現するかを調べます。
見つかればstring2の中で最後にstring1が出現した場所(先頭文字のインデックス(注))を返します。見つからなければ-1を返します。

string length string

stringの文字列の長さを返します。

string match pattern string

stringpatternが一致するか調べ、一致する文字列があれば1を、なければ0を返します。
patternには、UNIXのCシェルでファイル名指定などに用いる特殊文字も使用できます。
pattern中で特殊文字として扱われるものと、その意味を以下に説明します。

*:任意の文字の並び(空文字列を含む)と解釈されます。
例)パターン ab* は、abで始まる任意の文字列に一致します。

?:任意の1文字と解釈されます。
例)パターン ab? は、abで始まる3文字の文字列に一致します。

[]:大括弧内に指定された任意の1文字と解釈されます。また、大括弧内にa-zに指定された場合は、a ~ z までの任意の文字として解釈されます。
例)パターン ab[0-9] は、abで始まり、後ろが数字である3文字の文字列に一致します。

\:パターン記述上の特殊文字(*?[]\)の直前に記述することにより、その文字の特殊な意味を消し、単なる1文字として扱わせます。
例)パターン ab\* は、文字列 ab* に一致します。
pattern中に特殊文字が含まれていない場合は、patternと完全に同一である場合に一致となります。

string range string i j

文字列のiからjで示される場所(インデックス(注))の文字列を返します。

string tolower string

stringを小文字に変換した文字列を返します。

string totitle string

stringの先頭を大文字、残りを小文字に変換した文字列を返します。

string toupper string

stringを大文字に変換した文字列を返します。

string trim stringchars

stringの最初か最後に、charsで指定された文字セットに含まれる文字があれば、その文字を削除した文字列を返します。
chars省略時は、空白文字が削除されます。

string trimleft stringchars

stringの最初に、charsで指定された文字セットに含まれる文字があれば、その文字を削除した文字列を返します。chars省略時は、空白文字が削除されます。

string trimright string chars

stringの最後に、charsで指定された文字セットに含まれる文字があれば、その文字を削除した文字列を返します。chars省略時は、空白文字が削除されます。

string wordend string index

stringの中で、インデックス(注)で示される文字を含んだ単語の、次の文字の位置を返します。

string wordstart string index

stringの中で、インデックス(注)で示される文字を含んだ単語の、先頭の文字の位置を返します。

(注)インデックスとは

先頭文字を0とした場合の文字列中の位置(n文字目)を表します。
日本語文字(2バイト文字)も1文字として数えられます。

ポイント

文字列判定にstringコマンドを使用する場合、stringコマンドだけで複雑な条件は指定できないので論理式を利用します。
例えば、変数EventTextに“AAA”または“BBB”という文字列が格納されていた場合、標準出力に表示します。

if {[string first "AAA" $EventText] > 0 || [string first "BBB" $EventText] > 0} {
   puts $EventText
}

復帰値

オプションごと説明”を参照してください。

使用例

変数bufに格納されている文字列の先頭3文字を抜き出し、変数topに格納します。

set top [string range $buf 0 2]

実行結果/出力形式

なし