splite

来源:互联网 发布:sas mac版安装教程 编辑:程序博客网 时间:2024/06/05 09:20

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
原创粉丝点击