麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

Perl split字符串分割函數(shù)用法指南

2020-06-04 20:28:30
字體:
供稿:網(wǎng)友

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

Perl split函數(shù)

Perl中的一個(gè)非常有用的函數(shù)是Perl split函數(shù)-把字符串進(jìn)行分割并把分割后的結(jié)果放入數(shù)組中。這個(gè)Perl split函數(shù)使用規(guī)則表達(dá)式(RE),如果未特定則工作在$_變量上。

Perl split函數(shù)可以這樣使用: 

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


其結(jié)果是:@personal=("Caine","Michael","Actor","14,LeafyDrive");

◆如果我們已經(jīng)把信息存放在$_變量中,那么可以這樣:

代碼如下:
@personal=split(/:/);

如果各個(gè)域被任何數(shù)量的冒號(hào)分隔,可以用RE代碼進(jìn)行分割: 
代碼如下:
$_="Capes:Geoff::Shotputter:::BigAvenue"; 
@personal=split(/:+/); 

其結(jié)果是:@personal=("Capes","Geoff","Shotputter","BigAvenue");

但是下面的代碼:

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

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

◆這個(gè)Perl split函數(shù)中單詞可以被分割成字符,句子可以被分割成單詞,段落可以被分割成句子:

代碼如下:
@chars=split(//,$word);
@words=split(//,$sentence); 
@sentences=split(//./,$paragraph); 

在第一句中,空字符串在每個(gè)字符間匹配,所以@chars數(shù)組是一個(gè)字符的數(shù)組。>>

//之間的部分表示split用到的正則表達(dá)式(或者說分隔法則)
/s是一種通配符,代表空格
+代表重復(fù)一次或者一次以上。
所以,/s+代表一個(gè)或者一個(gè)以上的空格。
split(//s+/,$line)表示把字符串$line,按空格為界分開。
比如說,$line="你好朋友歡迎光臨我的網(wǎng)站jb51.net";
split(//s+/,$line)后得到:
你好朋友歡迎訪問我的網(wǎng)站jb51.net

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

在perl手冊(cè)里,有一個(gè)用法不多見。即: split /PATTERN/, EXPR, LIMIT;  關(guān)鍵就是這個(gè)LIMIT參數(shù),可以節(jié)省不少事情。 如果使用了LIMIT,且是正數(shù),表示分割成不多于LIMIT指定的數(shù)目的域。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,可以在很長(分割產(chǎn)生幾萬個(gè)元素or域)的行分割操作中,只返回關(guān)鍵的前幾列的域值,減少了內(nèi)存使用及時(shí)間消耗。比如一般的基因型數(shù)據(jù),第一列通常是材料命名,需要通過材料名的判斷取舍,這時(shí)候就可以這樣用。 my ($firstfield) = split //t/, $someline, 1;  如果需要前面幾列的值,這樣的方式對(duì)大文件效率很好: my (undef, $var1, undef, undef, undef, $var2)=split //t/, $someline, 6;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产91丝袜在线播放0 | 国产精品一区二区三区在线看 | 午夜精品久久久久久久96蜜桃 | av免费在线播放网址 | 天天草天天爱 | 羞羞草视频 | 成人在线视频一区 | 蜜桃麻豆视频 | 午夜噜噜噜 | 亚洲精品一区二区三区大胸 | 九九精品视频免费 | 免费一级在线 | 国产精品亚洲激情 | 色综合精品 | 成人在线观看免费视频 | 国产精品99久久久久久大便 | 91精品国产乱码久久久久久久久 | 永久免费黄色大片 | 成人一级在线 | 啊~用cao嗯力cao烂我视频 | 黄色片网站在线看 | 欧美18—19sex性护士中国 | 欧美一级免费看 | 欧日韩在线 | 一级免费| 久久免费毛片 | 黄色片快播 | 日韩精品中文字幕一区 | 黄色特级视频 | 一级黄色欧美 | 免费在线观看国产 | 久色乳综合思思在线视频 | 国产精品刺激对白麻豆99 | 国产精品国产三级国产在线观看 | 中国洗澡偷拍在线播放 | 午夜精品老牛av一区二区三区 | 久久恋| 国产无遮挡一区二区三区毛片日本 | 一级电影在线观看 | 免费男女乱淫真视频 | 欧美一级高潮 |