StrSplit()

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

StrSplit() [v1.1.13+][編集]

文字列を指定の区切り文字で分割する。

Array := StrSplit(String [, Delimiters, OmitChars])

Parameters[編集]

引数名 説明
Array
(戻り値)
文字列の配列 (オブジェクト)。
ここで指定した文字列の後ろに [N]( 1以降の数字)をつけた名前の変数に、各要素が格納される。
たとえば、ここで Arrayを指定した場合、 Array[1] Array[2]...に各要素が格納される。
分割された要素数を調べるにはArray.MaxIndex()を利用する。下記Example(s)参照。
String 分割するもとの文字列を格納した変数名
Delimiters 区切り文字として使用したい文字を列挙。大文字小文字は区別される。
省略時は、Stringが1文字ずつに分解される。
戻り値に、区切り文字は含まれない。
入力文字列内で区切り文字のペアの間に何もない場合も、対応する配列要素は空白になる。
OmitChars 分割された各要素の最初と最後から取り除く文字を列挙。(大文字小文字は区別される)
Delimitersが空の場合、ここで指定した文字を除いて1文字ずつに分解される。

Remarks[編集]

区切り文字の指定の仕方によっては意図しない結果となる可能性がある。 (日本語を扱う上での不具合を参照。)
AHKL ユニコード版では全角/半角に関わらず文字単位で処理される。

String内に区切り文字が二つ以上連続していた場合、空要素ができる。

すでに結果が代入されるべき変数と同じ名前の変数が存在する場合、内容はすべて上書きされる。

parsing loopを使用すれば、分割後の要素をメモリに格納せずに、分割した各要素に対して処理を行うことが出来る。
大きな文字列を処理したいときなどは、こちらのほうが便利。

parsing loopを使用すれば、標準的なCSVフォーマットに従って文字列を処理することも出来る。

結果の要素を整列してから分割するには、Sortで整列してからStrSplit()する。

Related[編集]

関数, StringSplit, Parsing loop, 配列, Sort, SplitPath, IfInString, StringGetPos, StringMid, StringTrimLeft, StringTrimRight, StringLen, StringLower, StringUpper, StringReplace

Example(s)[編集]

TestString := "This is a test."
word_array := StrSplit(TestString, A_Space, ".")  ; ピリオドを省略します
MsgBox % "The 4th word is " word_array[4]

Colors := "red,green,blue"
ColorArray := StrSplit(Colors, ",")
Loop % ColorArray.MaxIndex()
{
    this_color := ColorArray[A_Index]
    MsgBox, Color number %A_Index% is %this_color%.
}