'."\n");?> perl の split で、パターンも含めた配列を返す - 勤務先と無関係なことを書く日記

Home > Perl > | Ruby > perl の split で、パターンも含めた配列を返す

perl の split で、パターンも含めた配列を返す

例えば、

my @tmps = split(/,/, 'hello, world');

の場合は

@tmps = ('hello',' world');

だが、

my @tmps = split(/(,)/, 'hello, world');

の場合は

@tmps = ('hello',',',' world');

となり、「,」も含まれる。

どういうときに便利かというと、

for my $str ( split(/({{|}})/, 'aa{{plugin arg}}bb') ) {
  if ($str eq '{{') {
   }
   elsif ($str eq '}}') {
  }
  else {
  }
}

というような感じで使う。

。。。というようなことに、ruby の Regexp.union 関連を見ててたどりついたわけだが、

perldoc -f split

するとちゃんと書いてある。やっぱり基本は重要。

Home > Perl > | Ruby > perl の split で、パターンも含めた配列を返す

Feeds

Return to page top