split
split /PATTERN/, EXPR, LIMIT
split /PATTERN/, EXPR
split /PATTERN/
split
文字列を分割する関数です。
文字列EXPRをPATTERNで指定したデリミタで分割します。分割された文字列のリスト(リストコンテキストの場合)または、分割された文字列の個数(スカラーコンテキストの場合)を返します。
LIMITを設定すると、設定した個数までの分割を行います。
EXPRを省略すると、$_を分割します。
PATTERNを省略すると、空白文字(/\s+/)で分割します。
PATTERNには正規表現を使えます。
サンプルプログラム
# 一般的な使い方 $a = 'a,bb,ccc,dddd'; @foo = split /,/, $a; # $foo[0] = 'a', $foo[1] = 'bb', $foo[2] = 'ccc', $foo[3] = 'dddd' となる # 一般的な使い方2 $a = '15:34:05'; ($hour, $min, $sec) = split /:/, $a; # $hour = '15', $min = '34', $sec = '05' となる # 分割数を指定 $a = 'a,bb,ccc,ddd'; @foo = split /,/, $a, 3; # $foo[0] = 'a', $foo[1] = 'bb', $foo[2] = 'ccc,dddd' となる # 正規表現を使用する $a = 'a:b,c:d'; @foo = split /:|,/, $a; # $foo[0] = 'a', $foo[1] = 'b', $foo[2] = 'c', $foo[3] = 'd' となる # 一文字ずつに分割する $a = '1234'; @foo = split //, $a; # $foo[0] = '1', $foo[1] = '2', $foo[2] = '3', $foo[3] = '4' となる # 括弧付きPATTERN デリミタも分割文字列に入ります $a = '1,2'; @foo = split /(,)/, $a; # $foo[0] = '1', $foo[1] = ','; $foo[2] = '2' となる
関連項目
・日付の存在チェック・CSVの値取得
・文字列を1文字ずつ処理する
・分割時に末尾の空フィールドを残す
・文字列の分割
・join関数