PerlならサンプルコードPerl入門

2008-03-01

split関数 - 文字列の分割

  1. Perl
  2. 関数
  3. here

 区切り文字を指定して文字列を分割するには、split関数を使用します。

my @ret = split(/,/, $person_csv);

 第1引数には区切り文字を正規表現で指定します。第2引数には分割したい文字列を指定します。戻り値は分割された文字列の配列です。

サンプル

 CSV形式のデータを配列に変換するサンプルです。

# CSV形式のデータを配列に変換
my $string = 'a,b,c';
my @record = split /,/, $string;

 空白で区切られたデータ配列に変換するサンプルです。

# 空白で区切られたデータを配列に変換
my $string = 'a   b     c';
my @record = split /\s+/, $string;

 カンマ区切りの文字列を処理するサンプルです。

use strict;
use warnings;

# 1: カンマ区切りの文字列を処理する。
my $header_csv = "name,age,country\n";
my $person_csv = "kaori,23,Japan\n";

# chomp関数で改行を取り除く
chomp $header_csv;
chomp $person_csv;

# split関数を用いて、区切り文字にカンマを指定する。
# split( /区切り文字/, 文字列 )
my @header = split(/,/, $header_csv);
my @person_attribute = split(/,/, $person_csv);

print "1: カンマ区切りの文字列を処理する。\n";
print "\$header_csv = $header_csv\n";
print "\$person_csv = $person_csv\n";
print "\n";

for my $i (0 .. 2) {
  print "\$header[ $i ] = " . $header[$i] . "\n";
  print "\$person_attribute[ $i ] = " . $person_attribute[$i] . "\n\n";
}

 実行結果

1: カンマ区切りの文字列を処理する。
$header_csv = name,age,country
$person_csv = kaori,23,Japan

$header[ 0 ] = name
$person_attribute[0] = kaori

$header[ 1 ] = age
$person_attribute[1] = 23

$header[ 2 ] = country
$person_attribute[2] = Japan

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証