strsplit

【Tera Term マクロ言語】コマンドリファレンス

strsplit 機能

[文字列操作コマンド]

文字列を分割します。

コマンドライン

strsplit <strval> <separator> [<count>]

機能説明

文字列 <strval> から、区切り記号 <separator> で区切られた部分文字列を取り出して、システム変数 groupmatchstr1 ~ groupmatchstr9 に返します。
<strval>
分割したい文字列を指定します。

この文字列には、分割用の文字が含まれている必要があります。
<separator>
<separator> には区切り記号として扱う文字を1文字だけ指定します。
[<count>]
<count> には、取得する部分文字列の最大数(9以下)を指定します。
<count> が省略された場合には、部分文字列の最大数は 9 とみなされます。

文字列中の部分文字列の数が <count> 未満であるとき、部分文字列が代入されなかった groupmatchstr には、""(空文字列) が代入されます。
文字列中の部分文字列の数が <count> を超えるとき、最後の groupmatchstr には残りの文字列がすべて代入されます。
文字列中の部分文字列の数が 9 を超えるとき、<count> を指定した場合とは違い 9 番目の部分文字列のみが代入されます。

実際に分割された個数をシステム変数 result に格納します。
<count> が省略され、文字列中の部分文字列の数が 9 を超えるときは、システム変数 result は 10 が格納されます。

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<strval>文字列文字列を指定します。
<separator>文字列区切り文字を指定します。
<count>整数いくつまで区切るのかを指定します。

対象バージョン

バージョン 4.67 以降で利用可能です。

戻り値

戻り値として以下の変数が定義されます。
変数名意味
result0分割できなかった
11個分割した
22個分割した
33個分割した
44個分割した
55個分割した
66個分割した
77個分割した
88個分割した
99個分割した
10文字列中の部分文字列の数が 9 を超えた
groupmatchstr1文字列区切り文字で区切られた部分文字列(1個目)を格納
groupmatchstr2文字列区切り文字で区切られた部分文字列(2個目)を格納
groupmatchstr3文字列区切り文字で区切られた部分文字列(3個目)を格納
groupmatchstr4文字列区切り文字で区切られた部分文字列(4個目)を格納
groupmatchstr5文字列区切り文字で区切られた部分文字列(5個目)を格納
groupmatchstr6文字列区切り文字で区切られた部分文字列(6個目)を格納
groupmatchstr7文字列区切り文字で区切られた部分文字列(7個目)を格納
groupmatchstr8文字列区切り文字で区切られた部分文字列(8個目)を格納
groupmatchstr9文字列区切り文字で区切られた部分文字列(9個目)を格納

関連コマンド

種別:文字列操作Ver機能の簡易説明
01394.67以降文字を連結する。

使用方法

使用例

・8個の区切り文字 (部分文字列の数は9個) を7つに分割した場合
src=',,Sun,Mon,Tue,,Thu,Fri,Sat'
strsplit src ',' 7

messagebox groupmatchstr1 "groupmatchstr1" ; ''
messagebox groupmatchstr2 "groupmatchstr2" ; ''
messagebox groupmatchstr3 "groupmatchstr3" ; 'Sun'
messagebox groupmatchstr4 "groupmatchstr4" ; 'Mon'
messagebox groupmatchstr5 "groupmatchstr5" ; 'Tue'
messagebox groupmatchstr6 "groupmatchstr6" ; ''
messagebox groupmatchstr7 "groupmatchstr7" ; 'Thu,Fri,Sat'
messagebox groupmatchstr8 "groupmatchstr8" ; ''
messagebox groupmatchstr9 "groupmatchstr9" ; ''
messagebox result         "result"         ; 7
・6個の区切り文字 (部分文字列の数は7個) を7つに分割した場合
src='Sun,Mon,Tue,Wed,Thu,Fri,Sat'
strsplit src ',' 7

messagebox groupmatchstr1 "groupmatchstr1" ; 'Sun'
messagebox groupmatchstr2 "groupmatchstr2" ; 'Mon'
messagebox groupmatchstr3 "groupmatchstr3" ; 'Tue'
messagebox groupmatchstr4 "groupmatchstr4" ; 'Wed'
messagebox groupmatchstr5 "groupmatchstr5" ; 'Thu'
messagebox groupmatchstr6 "groupmatchstr6" ; 'Fri'
messagebox groupmatchstr7 "groupmatchstr7" ; 'Sat'
messagebox groupmatchstr8 "groupmatchstr8" ; ''
messagebox groupmatchstr9 "groupmatchstr9" ; ''
messagebox result         "result"         ; 7
・2個しかない区切り文字 (部分文字列の数は3個) の文字列を9つに分割しようとした場合
src='A string'#10'of ,,tokens'#10'and some  more tokens'
strsplit src '\n' 9

messagebox groupmatchstr1 "groupmatchstr1" ; 'A string'
messagebox groupmatchstr2 "groupmatchstr2" ; 'of ,,tokens'
messagebox groupmatchstr3 "groupmatchstr3" ; 'and some  more tokens'
messagebox groupmatchstr4 "groupmatchstr4" ; ''
messagebox groupmatchstr5 "groupmatchstr5" ; ''
messagebox groupmatchstr6 "groupmatchstr6" ; ''
messagebox groupmatchstr7 "groupmatchstr7" ; ''
messagebox groupmatchstr8 "groupmatchstr8" ; ''
messagebox groupmatchstr9 "groupmatchstr9" ; ''
messagebox result         "result"         ; 3
・9個の区切り文字 (部分文字列の数は10個) を分割した場合
src='1,2,3,4,5,6,7,8,9,0'
strsplit src ','

messagebox groupmatchstr1 "groupmatchstr1" ; '1'
messagebox groupmatchstr2 "groupmatchstr2" ; '2'
messagebox groupmatchstr3 "groupmatchstr3" ; '3'
messagebox groupmatchstr4 "groupmatchstr4" ; '4'
messagebox groupmatchstr5 "groupmatchstr5" ; '5'
messagebox groupmatchstr6 "groupmatchstr6" ; '6'
messagebox groupmatchstr7 "groupmatchstr7" ; '7'
messagebox groupmatchstr8 "groupmatchstr8" ; '8'
messagebox groupmatchstr9 "groupmatchstr9" ; '9'
messagebox result         "result"         ; 10

サンプル

以下のサンプルが存在します。

備考

特にありません。