splite
Perl中的一個(gè)非常有用的函數(shù)是split - 把字符串進(jìn)行分割并把分割后的結(jié)果放入數(shù)組中。這個(gè)函數(shù)使用規(guī)則表達(dá)式(RE),如果未特定則工作在$_變量上。
split函數(shù)可以這樣使用:
$info = "Caine:Michael:Actor:14, Leafy Drive";
@personal = split(/:/, $info);
其結(jié)果是:
@personal = ("Caine", "Michael", "Actor", "14, Leafy Drive");
如果我們已經(jīng)把信息存放在$_變量中,那么可以這樣:
@personal = split(/:/);
如果各個(gè)域被任何數(shù)量的冒號(hào)分隔,可以用RE代碼進(jìn)行分割:
$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:+/);
其結(jié)果是
@personal = ("Capes", "Geoff", "Shot putter", "Big Avenue");
但是下面的代碼:
$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:/);
的結(jié)果是
@personal = ("Capes", "Geoff", "", "Shot putter", "", "", "Big Avenue");
單詞可以被分割成字符,句子可以被分割成單詞,段落可以被分割成句子:
@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 = "你好 朋友 歡迎光臨我的博客 61dh.com";
split (/\s+/, $line)后得到:
總結(jié)
- 上一篇: pack unpakc
- 下一篇: perl map