StrSplit

指定された区切り文字を使用して、文字列を部分文字列の配列に分離します。

Array := StrSplit(String , Delimiters, OmitChars, MaxParts)

パラメータ

String

型:文字列

分割する文字列。

Delimiters

型:文字列または配列

If blank or omitted, each character of the input string will be treated as a separate substring.

そうでない場合は、単一の文字列か文字列の配列(大文字と小文字を区別する)を指定し、それぞれの文字列が部分文字列間の境界を決定するのに使われる。区切り文字は部分文字列の一部とはみなされないので、返される配列に含まれることはない。また、入力文字列内の区切り文字の間に何もない場合、対応する配列要素は空白になる。

事例:","は、カンマが出現するたびに文字列を分割する。同様に、[A_Space, A_Tab]は、入力文字列中にスペースやタブが出現するたびに新しい配列要素を作成する。

OmitChars

型:文字列

If blank or omitted, no characters will be excluded. それ以外の場合は、各配列要素の先頭と末尾から除外する文字のリスト(大文字と小文字を区別)を指定する。例えば、OmitChars" `t"の場合、すべての要素の最初と最後(途中は除く)からスペースとタブが取り除かれる。

Delimitersが空白の場合、OmitCharsは配列から除外すべき文字を示す。

MaxParts

型:整数

If omitted, it defaults to -1, which means "no limit". そうでない場合は、返す部分文字列の最大数を指定する。0でない場合、文字列は最大MaxParts-1回分割され、文字列の残りが最後の部分文字列として返される(先頭または末尾のOmitCharsを除く)。

戻り値

型:配列

この関数は、指定された文字列の部分文字列を含む配列を返す。

備考

スペースやタブなどの空白文字は、DelimitersまたはOmitCharsパラメータにそれらの文字が含まれていない限り保持されます。スペースやタブは、Trimを使うことで変数の両端から切り取ることができる。事例:Var := Trim(Var)

標準的なCSV(カンマ区切り値)形式の文字列を分割するには、CSV処理が組み込まれている構文解析ループを使用する。

フィールドを分割する前に別の順序で並べるには、ソート機能を使用します。

部分文字列を永久にメモリに保存する必要がない場合は、構文解析ループを使用することを検討する。特にStringが非常に大きい場合は、大量のメモリを節約できる。事例:

Colors := "red,green,blue"
Loop Parse, Colors, ","
    MsgBox "Color number " A_Index " is " A_LoopField

解析ループSortSplitPathInStrSubStrStrLenStrLowerStrUpperStrReplace

文を単語の配列に分割し、4番目の単語を報告する。

TestString := "This is a test."
word_array := StrSplit(TestString, A_Space, ".")  ; Omits periods.
MsgBox "The 4th word is " word_array[4]

カンマで区切られた色のリストを部分文字列の配列に分割し、1つずつ走査する。

colors := "red,green,blue"
For index, color in StrSplit(colors, ",")
    MsgBox "Color number " index " is " color