Perl split字串分割函式用法指南
導讀 | 本文向大家簡單介紹一下Perl split函式的用法,Perl中的一個非常有用的函式是Perl split函式-把字串進行分割並把分割後的結果放入陣列中。 |
本文和大家重點討論一下Perl split函式的用法,Perl中的一個非常有用的函式是Perl split函式-把字串進行分割並把分割後的結果放入陣列中。這個Perl split函式使用規則表示式(RE),如果未特定則工作在$_變數上。
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指定的數目的域。
透過制定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就只能用中間陣列。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2887662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- perl字串函式字串函式
- PHP 每日一函式 — 字串函式 chunk_split ()PHP函式字串
- java split進行字串分割Java字串
- Perl5 split 函式的使用詳細講解函式
- php中的chunk_split()和str_split()字串函式PHP字串函式
- JavaScript split() 分割字串生成陣列JavaScript字串陣列
- 建立一個字串分割的函式字串函式
- C++分割字串,及strtok函式使用C++字串函式
- split() 函式解析 (一)函式
- javascript函式之——splitJavaScript函式
- 利用SQL的charindex實現字串陣列和Split函式SQLIndex字串陣列函式
- Sql字串分組Split函式的兩種實現方法SQL字串函式
- split 分割 字串(分隔符如:* ^ : | , .) 及注意點字串
- Python strip函式和split函式Python函式
- perl自定義函式函式
- js split()分割字串生成陣列程式碼例項JS字串陣列
- perl printf函式的使用函式
- 分割函式函式
- Golang 字串分割,替換和擷取 strings.SplitGolang字串
- mysql 效果類似split函式MySql函式
- 自定義函式實現字串分割,返回集合型別函式字串型別
- perl 中glob函式的使用函式
- javascript的split()函式使用介紹JavaScript函式
- Java中Split函式的用法技巧Java函式
- 字串函式之Strtok()函式字串函式
- perl 裡邊的 函式指標函式指標
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- Python中的split()函式的用法Python函式
- js中split函式的使用方法JS函式
- 轉:類似SQL中的split函式SQL函式
- ASP 中 Split 函式的例項 (轉)函式
- 字串函式 fprintf ()字串函式
- 字串函式 htmlentities ()字串函式HTML
- 字串函式 htmlspecialchars ()字串函式HTML
- 字串函式 implode ()字串函式
- 字串函式 explode ()字串函式
- 字串函式 lcfirst ()字串函式
- 字串函式 levenshtein ()字串函式