splite
Perl中的一個非常有用的函數是split - 把字符串進行分割并把分割后的結果放入數組中。這個函數使用規則表達式(RE),如果未特定則工作在$_變量上。
split函數可以這樣使用:
$info = "Caine:Michael:Actor:14, Leafy Drive";
@personal = split(/:/, $info);
其結果是:
@personal = ("Caine", "Michael", "Actor", "14, Leafy Drive");
如果我們已經把信息存放在$_變量中,那么可以這樣:
@personal = split(/:/);
如果各個域被任何數量的冒號分隔,可以用RE代碼進行分割:
$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:+/);
其結果是
@personal = ("Capes", "Geoff", "Shot putter", "Big Avenue");
但是下面的代碼:
$_ = "Capes:Geoff::Shot putter:::Big Avenue";
@personal = split(/:/);
的結果是
@personal = ("Capes", "Geoff", "", "Shot putter", "", "", "Big Avenue");
單詞可以被分割成字符,句子可以被分割成單詞,段落可以被分割成句子:
@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/\./, $paragraph);
在第一句中,空字符串在每個字符間匹配,所以@chars數組是一個字符的數組。>>
?
// 之間的部分表示split用到的正則表達式(或者說分隔法則)
\s 是一種通配符,代表空格
+ 代表重復一次或者一次以上。
所以, \s+ 代表一個或者一個以上的空格。
split (/\s+/, $line) 表示把字符串$line,按空格為界分開。
比如說, $line = "你好 朋友 歡迎光臨我的博客 61dh.com";
split (/\s+/, $line)后得到:
總結
- 上一篇: pack unpakc
- 下一篇: perl map