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)后得到:
你好 朋友 欢迎访问我的博客 61dh.com