PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.4 TCLplusコマンド

3.4.36 string

機能:

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

形式:

string compare string1 string2
string first string1 string2
string index string Index
string last string1 string2
string length string
string match pattern string
string range string Index1 Index2
string tolower string
string totitle string
string toupper string
string trim string1string2string trimleft string1string2string trimright string1string2string wordend string Index
string wordstart string Index

オプション:

compare
string1string2の大小を比較します。
string1string2より小さい場合:復帰値 -1
string1string2と等しい場合:復帰値 0
string1string2より大きい場合:復帰値 1

first
string2string1が出現するかを検査します。
出現した場合、最初にstring1が出現した位置(string2の先頭文字を0とした場合の文字位置)を返します。出現しなければ -1を返します。

index
stringの先頭文字を0番目として、Index番目の文字を返します。

last
string2string1が出現するかを検査します。
出現した場合、最後にstring1が出現した位置(string2の先頭文字を0とした場合の文字位置)を返します。
出現しなければ-1を返します。

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

match
stringpatternが一致するか調べ、一致する文字列があれば1を、なければ0を返します。
patternには"表3.15 stringコマンドの特殊表現"の記号が使用できます。

[表3.15 stringコマンドの特殊表現]

記号

意味

例の解説

*

任意の文字の並び(空文字列を含む)と解釈されます。

ab*

abで始まる任意の文字列に一致します。

?

任意の1文字と解釈されます。

ab?

abで始まる3文字の文字列に一致します。

[文字集合]

文字集合の中の1文字を表します。文字集合で範囲を表すには[a-z]のように"-"(ハイフン)を使用します。

ab[0-9]

abで始まりその後ろが数字である3文字の文字列に一致します。

\

パターン記述上の特殊文字(*?[]\)の直前に記述することにより、その文字の特殊な意味を消し、単なる1文字として解釈されます。

ab\*

文字列 ab* に一致します。

range
文字列のIndex1番目からIndex2番目までの文字列を返します。

tolower
stringの英大文字を英小文字に変換した文字列を返します。

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

toupper
stringの英小文字を英大文字に変換した文字列を返します。

trim
string1の先頭か末尾にstring2で指定された文字列があれば、その文字列を削除した文字列を返します。
string2を省略した場合、空白文字が削除されます。

trimleft
string1の先頭にstring2で指定された文字列があれば、その文字列を削除した文字列を返します。
string2省略時は、空白文字が削除されます。

trimright
string1の末尾にstring2で指定された文字列があれば、その文字列を削除した文字列を返します。
string2省略時は、空白文字が削除されます。

wordend
stringの先頭文字を0番目として、Index番目の文字を含む単語の直後の空白位置を返します。
Indexに0または負数を指定した場合は、先頭の単語の直後の空白位置を返します。
Indexstringの末尾またはそれ以降の文字位置を指定した場合は、stringの末尾の位置を返します。

wordstart
stringの先頭文字を0番目として、Index番目の文字を含む単語の直前の空白位置を返します。
Indexに0または負数を指定した場合は、0を返します。
Indexstringの末尾以降を指定した場合は、末尾の単語の直前の空白位置を返します。

パラメーター:

string
文字列を指定します。

index
string
の先頭を0番目とした場合の文字位置を整数で指定します。

復帰値:

オプションにより異なります。

注意事項:

なし

使用例:

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

set string1 "abcdef"
set string2 "ghijkl"

puts "文字列 $string1 と文字列 $string2 を比較します。"
switch -exact -- [string compare $string1 $string2] {
    {-1} { puts "$string1 は $string2 より小さい"}
     {0} { puts "$string1 は $string2 と同じ"}
     {1} { puts "$string1 は $string2 より大きい"}
}

puts "*************************************"
puts "文字列 $string1 に文字列 cd が存在するか検査します。"

if {[expr [string first "cd" $string1] > 0]} { 
         puts "存在します"
    } else { puts "存在しません"
}

puts "*************************************"
puts "文字列 $string1 から 3番目の文字を出力します。"
puts [string index $string1 2]

puts "*************************************"
puts "文字列 $string1 の文字数を出力します。"
puts [string length $string1]

puts "*************************************"
puts "文字列 $string1 を大文字にして出力します。"
puts [string toupper $string1]

<実行結果>

文字列 abcdef と文字列 ghijkl を比較します。
abcdef は ghijkl より小さい
*************************************
文字列 abcdef に文字列 cd が存在するか検査します。
存在します
*************************************
文字列 abcdef から 3番目の文字を出力します。
c
*************************************
文字列 abcdef の文字数を出力します。
6
*************************************
文字列 abcdef を大文字にして出力します。
ABCDEF



目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005