良许Linux教程网 干货合集 Perl split字符串分割函数使用方法

Perl split字符串分割函数使用方法

本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中。这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上。

image-20220624222530679


Perl split函数

Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中。这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上。

Perl split函数可以这样使用:

$info="Caine:Michael:Actor:14,LeafyDrive"; 
@personal=split(/:/,$info); 

其结果是:@personal=("Caine","Michael","Actor","14,LeafyDrive");
◆如果我们已经把信息存放在$_变量中,那么可以这样:

@personal=split(/:/);

如果各个域被任何数量的冒号分隔,可以用RE代码进行分割:

$_="Capes:Geoff::Shotputter:::BigAvenue"; 
@personal=split(/:+/); 

其结果是:@personal=(“Capes”,”Geoff”,”Shotputter”,”BigAvenue”);

但是下面的代码:

$_="Capes:Geoff::Shotputter:::BigAvenue"; 
@personal=split(/:/);

的结果是:@personal=("Capes","Geoff","","Shotputter","","","BigAvenue");

这个Perl split函数中单词可以被分割成字符,句子可以被分割成单词,段落可以被分割成句子:

@chars=split(//,$word);
@words=split(//,$sentence); 
@sentences=split(/\./,$paragraph); 

在第一句中,空字符串在每个字符间匹配,所以@chars数组是一个字符的数组。>>

//之间的部分表示split用到的正则表达式(或者说分隔法则)
\s是一种通配符,代表空格
+代表重复一次或者一次以上。
所以,\s+代表一个或者一个以上的空格。
split(/\s+/,表示把字符串line,按空格为界分开。
比如说,

line)后得到:
你好朋友欢迎访问我的网站jb51.net

一般用法: @somearray = split(/:+/, string ); #括号可以不要。 若不指定string, 则对默认变量$_操作, 两斜线间为分割符,可以用正则表达式,强悍异常。

在perl手册里,有一个用法不多见。即: split /PATTERN/, EXPR, LIMIT; 关键就是这个LIMIT参数,可以节省不少事情。 如果使用了LIMIT,且是正数,表示分割成不多于LIMIT指定的数目的域。

通过制定LIMIT,可以在很长(分割产生几万个元素or域)的行分割操作中,只返回关键的前几列的域值,减少了内存使用及时间消耗。比如一般的基因型数据,第一列通常是材料命名,需要通过材料名的判断取舍,这时候就可以这样用。 my (someline, 1; 如果需要前面几列的值,这样的方式对大文件效率很好: my (undef, var2)=split /\t/, $someline, 6;

有网友对这种方式做了测试,显示较好。引用如下:
一个文件,每行都有18项,各项之间用\t分割,使用时用到了第6项,折腾了几种用法

复制代码代码如下:

my @array = split("\t",$_); my $var = $array[6];   测试文件平均用时8.2s
 my($var) = (split("\t",$_))[6];  测试平均用时5.1s
 my(undef,undef,undef,undef,undef,undef,$var) = split("\t",$_); 平均用时3.53s
 my(undef,undef,undef,undef,undef,undef,$var) = split("\t",$_,7);平均用时3.52s
 my $var = (split("\t",$_,7))[6]; 平均用时3.53s
看来后3种才是王道,如果需要使用多项也可以进行进行适当的变动。不过两项如果跨度比较大,3,4应该是不错选择,5就只能用中间数组。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部