a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

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

2020-06-04 20:28:30
字體:
來源:轉載
供稿:網友

本文和大家重點討論一下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="你好朋友歡迎光臨我的網站jb51.net";
split(//s+/,$line)后得到:
你好朋友歡迎訪問我的網站jb51.net

一般用法: @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;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人av免费在线观看 | 久久再线视频 | 亚洲国产精品久久久久 | 天堂一区二区三区 | 日韩精品在线观看免费 | 日韩成人av在线 | 国产精品久久久久久福利 | 欧美乱码久久久久久蜜桃 | 福利一区二区在线 | 中文字幕在线亚洲 | 久久激情五月丁香伊人 | 国产一区二区三区网站 | 免费观看h视频 | 久久99深爱久久99精品 | 国产美女福利 | www.欧美日韩 | 狠狠艹| 中文字幕在线观看不卡 | 久操伊人| 国产成人a亚洲精品 | 在线观看日韩av | 七七婷婷婷婷精品国产 | 国产日韩欧美亚洲 | 日韩精品久久 | 欧美乱码久久久久久蜜桃 | 18视频免费网址在线观看 | 国外成人在线视频网站 | 成年人网站免费在线观看 | 精品亚洲成a人片在线观看 99在线免费视频 | 中文字幕av一区二区三区 | 在线观看亚洲一区二区 | 综合一区在线观看 | 国产成人精品a视频 | 午夜在线观看免费 | 欧美一区2区三区4区公司二百 | 国产黄色免费网站 | 国产日韩精品一区二区在线观看播放 | 亚洲精品乱码久久久久久按摩观 | 亚洲av一级毛片 | 午夜精品久久久久久久 | 国产欧美精品区一区二区三区 |