strsplit
2021/05/15 20:21
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 以降で利用可能です。戻り値
戻り値として以下の変数が定義されます。変数名 | 値 | 意味 |
---|---|---|
result | 0 | 分割できなかった |
1 | 1個分割した | |
2 | 2個分割した | |
3 | 3個分割した | |
4 | 4個分割した | |
5 | 5個分割した | |
6 | 6個分割した | |
7 | 7個分割した | |
8 | 8個分割した | |
9 | 9個分割した | |
10 | 文字列中の部分文字列の数が 9 を超えた | |
groupmatchstr1 | 文字列 | 区切り文字で区切られた部分文字列(1個目)を格納 |
groupmatchstr2 | 文字列 | 区切り文字で区切られた部分文字列(2個目)を格納 |
groupmatchstr3 | 文字列 | 区切り文字で区切られた部分文字列(3個目)を格納 |
groupmatchstr4 | 文字列 | 区切り文字で区切られた部分文字列(4個目)を格納 |
groupmatchstr5 | 文字列 | 区切り文字で区切られた部分文字列(5個目)を格納 |
groupmatchstr6 | 文字列 | 区切り文字で区切られた部分文字列(6個目)を格納 |
groupmatchstr7 | 文字列 | 区切り文字で区切られた部分文字列(7個目)を格納 |
groupmatchstr8 | 文字列 | 区切り文字で区切られた部分文字列(8個目)を格納 |
groupmatchstr9 | 文字列 | 区切り文字で区切られた部分文字列(9個目)を格納 |
関連コマンド
種別:文字列操作 | Ver | 機能の簡易説明 |
---|---|---|
0139 | 4.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