Perl split操作符
Posted 茶与生信
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl split操作符相关的知识,希望对你有一定的参考价值。
split会根据给定的模式拆分字符串,对于使用制表符、冒号、空格或任意符号分割不同字段数据的字符串来说,用这个操作符分解提取字段相当方便。只要你能将分隔符写成模式,就可以用split分解数据。
split具体用法如下:
my @fields = split /separator/, $string;
例子详解:
my @fields = split /,/, "hello,world";
#得到("hello", "world")
#如果两个分隔符连在一起,就会产生空字段:
my @fields = split /,/, "hello,,world";
#得到("hello", "", "world")
#split会保留开头的空字段,但会舍弃结尾处的空字段。
my @fields = split /,/, ",,,hello,world,,,";
#得到("", "", "","hello", "world")
#split的/\s+/模式根据空白分隔字段。
#该模式把所有连续空白视作单个空格并以此分割
my @fields = split /\s+/, "oh hello world";
#得到("oh","hello", "world")
#默认split会以空白分割$_中的字符串:
my @fields = split;
#等效于split /\s+/, $_;
#另一种用法:
my @fields = split /\s/, "oh hello world", 2;
#得到("oh","hello world"
#此外可以将@fields结果传递给变量
my @fields = split /\s/, "oh hello world";
my $words = $filed[0];
#则$words的值为"oh"
my @fields = split '|', "oh hello world";
#等价于
my @fields = split /|/, "oh hello world";
#多种字符分割
my @fields = split /[\s,]/, "oh,hello world";
#得到("oh","hello", "world")
#或者:
my @fields = split /\s|,/, "oh,hello world";
#得到("oh","hello", "world")
#拆分为哈希
my $sline='xiaoming=A&xiaoli=B&xiaohua=C';
my %array=split /[=&]/,$line;
#得到
'xiaoming' => 'A',
'xiaoli' => 'B',
'xiaohua' => 'C'
以上是关于Perl split操作符的主要内容,如果未能解决你的问题,请参考以下文章