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操作符的主要内容,如果未能解决你的问题,请参考以下文章

perl正则表达式

如何在perl中使用split函数来完成awk的工作

Perl处理数据:s替换split和Join

perl中的队列

Perl学习

perl 转置矩阵