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","","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