亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

Perl split字符串分割函數用法指南

2020-10-31 15:19:03
字體:
來源:轉載
供稿:網友

本文和大家重點討論一下Perl split函數的用法,Perl中的一個非常有用的函數是Perl split函數-把字符串進行分割并把分割后的結果放入數組中。這個Perl split函數使用規則表達式(RE),如果未特定則工作在$_變量上。

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,按空格為界分開。
比如說,$line="你好朋友歡迎光臨我的網站VeVB.COm";
split(//s+/,$line)后得到:
你好朋友歡迎訪問我的網站VeVB.COm

一般用法: @somearray = split(/:+/, $string ); #括號可以不要。  若不指定$string, 則對默認變量$_操作, 兩斜線間為分割符,可以用正則表達式,強悍異常。

在perl手冊里,有一個用法不多見。即: split /PATTERN/, EXPR, LIMIT;  關鍵就是這個LIMIT參數,可以節省不少事情。 如果使用了LIMIT,且是正數,表示分割成不多于LIMIT指定的數目的域。If LIMIT is unspecified or zero, trailing null fields are stripped (which potential users of pop would do well to remember). If LIMIT is negative, it is treated as if an arbitrarily large LIMIT had been specified. Note that splitting an EXPR that evaluates to the empty string always returns the empty list, regardless of the LIMIT specified.

通過制定LIMIT,可以在很長(分割產生幾萬個元素or域)的行分割操作中,只返回關鍵的前幾列的域值,減少了內存使用及時間消耗。比如一般的基因型數據,第一列通常是材料命名,需要通過材料名的判斷取舍,這時候就可以這樣用。 my ($firstfield) = split //t/, $someline, 1;  如果需要前面幾列的值,這樣的方式對大文件效率很好: my (undef, $var1, undef, undef, 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就只能用中間數組。

自己動手測試下吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最新国产成人av网站网址麻豆| 欧美成人小视频| 国产精品h在线观看| 欧美日韩国产一中文字不卡| 性色av一区二区三区| 国产精品日韩久久久久| 欧美一区二区色| 日韩av网址在线| 欧美精品videos| 欧美专区日韩视频| 日韩av免费在线播放| 亚洲精品一区二区在线| 亚洲成人999| 日韩中文字幕视频在线| 亚洲精品一区二区在线| 亚洲视频电影图片偷拍一区| 日韩欧美高清视频| 精品福利一区二区| 97久久超碰福利国产精品…| 亚洲午夜女主播在线直播| 亚洲成人a**站| y97精品国产97久久久久久| 一区二区欧美亚洲| 午夜精品一区二区三区在线视频| 久久人人爽人人爽人人片av高清| 国产成人高潮免费观看精品| 国产精品精品久久久久久| 亚洲第一在线视频| 亚洲国产成人精品久久久国产成人一区| 在线观看免费高清视频97| 91欧美视频网站| 欧美日韩爱爱视频| 欧美在线视频导航| 亚洲男人第一av网站| www高清在线视频日韩欧美| 亚洲第一精品久久忘忧草社区| 欧美成人免费观看| 91久久国产精品| 2019中文字幕免费视频| 欧美国产一区二区三区| 欧美精品18videosex性欧美| 国产999精品视频| 热re99久久精品国产66热| 亚洲美女久久久| 亚洲iv一区二区三区| 国产午夜精品一区理论片飘花| 黑人巨大精品欧美一区二区一视频| 国产精品久久久久久久久久久久久久| 欧美大胆在线视频| 日韩国产一区三区| 久久成人在线视频| 97在线日本国产| 日本久久久a级免费| 亚洲精品在线不卡| 亚洲精品欧美日韩| 成人性生交大片免费看小说| 亚洲午夜久久久久久久| 精品国产一区二区三区久久狼5月| 亚洲精品一区av在线播放| 青青草精品毛片| 91免费精品国偷自产在线| 国产精品视频一区国模私拍| 欧美日韩精品在线观看| 国产精品福利网站| 国产精品爱啪在线线免费观看| 亚洲成人aaa| 宅男66日本亚洲欧美视频| 精品中文字幕在线| 欧美成人第一页| 久久夜色精品亚洲噜噜国产mv| 黄网站色欧美视频| 国产精品视频免费观看www| 成人黄色在线观看| 日韩福利视频在线观看| 国产精品久久久久久久久粉嫩av| 成人在线视频网站| 亚洲欧美成人在线| 亚洲a∨日韩av高清在线观看| 91夜夜未满十八勿入爽爽影院| 亚洲精品久久久久中文字幕欢迎你| 国产精品吊钟奶在线| 日韩电视剧免费观看网站| 欧美成在线视频| 日韩电影中文字幕在线观看| 成人写真福利网| 国产成人啪精品视频免费网| 欧美老女人在线视频| 91麻豆国产语对白在线观看| 国产日韩av在线| 91精品国产综合久久男男| 国产精品video| 91精品国产精品| 国产亚洲精品久久久久久牛牛| 日韩av电影在线网| 国产一区二区三区在线播放免费观看| 精品无人国产偷自产在线| 中文字幕在线精品| 欧美中在线观看| 亚洲综合第一页| 国产一区二区三区日韩欧美| 国产99久久久欧美黑人| 日本韩国欧美精品大片卡二| 欧美日本在线视频中文字字幕| 最近2019好看的中文字幕免费| 欧美亚洲成人xxx| 亚洲欧美一区二区三区情侣bbw| 亚洲国模精品一区| 日韩在线观看成人| 成人免费观看a| 日韩av电影在线免费播放| 精品成人国产在线观看男人呻吟| 欧美极品美女电影一区| 国产精品视频一区二区三区四| 国产精品高潮视频| 97视频国产在线| 国产精品18久久久久久首页狼| 亚洲欧美日韩天堂一区二区| 国产精品极品美女在线观看免费| 国产精品久久久久久影视| 91香蕉国产在线观看| 欧美日韩国产一中文字不卡| 久久综合久久88| 美女福利视频一区| 91精品久久久久久久久久| 日韩精品中文字幕视频在线| 久久精品电影网| 久久亚洲一区二区三区四区五区高| 热久久99这里有精品| 国产日本欧美视频| 欧洲精品久久久| 国产丝袜一区视频在线观看| 69av成年福利视频| 精品视频在线播放色网色视频| 久久九九国产精品怡红院| 亚洲网站在线看| 麻豆乱码国产一区二区三区| 久久6精品影院| 欧美高清视频一区二区| 插插插亚洲综合网| 亚洲国产欧美一区二区三区同亚洲| 国产精品成人av性教育| 欧美成人精品在线播放| 国产精品国模在线| 欧美国产日韩一区二区三区| 欧美大尺度电影在线观看| 91欧美精品成人综合在线观看| xxav国产精品美女主播| 欧美xxxx14xxxxx性爽| 日韩精品亚洲元码| 精品亚洲夜色av98在线观看| 亚洲午夜精品久久久久久久久久久久| 日韩av成人在线| 亚洲色图国产精品| 日韩免费精品视频| 2019亚洲日韩新视频| 美日韩精品免费观看视频| 91色琪琪电影亚洲精品久久| 国产69精品久久久久9999| 日韩av片永久免费网站| 久久久天堂国产精品女人| 国产在线98福利播放视频| 久久久久久久久久久91| 2019中文字幕全在线观看| 亚洲性无码av在线|