perl:split函数用法

本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中。这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上。

Perl split函数

Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中。这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上。

Perl split函数可以这样使用:

  1. $info="Caine:Michael:Actor:14,LeafyDrive";
  2. @personal=split(/:/,$info);

其结果是:@personal=("Caine","Michael","Actor","14,LeafyDrive");

◆如果我们已经把信息存放在$_变量中,那么可以这样:

@personal=split(/:/);

如果各个域被任何数量的冒号分隔,可以用RE代码进行分割:

  1. $_="Capes:Geoff::Shotputter:::BigAvenue";
  2. @personal=split(/:+/);

其结果是:@personal=("Capes","Geoff","Shotputter","BigAvenue");

但是下面的代码:

  1. $_="Capes:Geoff::Shotputter:::BigAvenue";
  2. @personal=split(/:/);

的结果是:@personal=("Capes","Geoff","","Shotputter","","","BigAvenue");

◆这个Perl split函数中单词可以被分割成字符,句子可以被分割成单词,段落可以被分割成句子:

  1. @chars=split(//,$word);
  2. @words=split(//,$sentence);
  3. @sentences=split(/\./,$paragraph);

在第一句中,空字符串在每个字符间匹配,所以@chars数组是一个字符的数组。>>

//之间的部分表示split用到的正则表达式(或者说分隔法则)

\s是一种通配符,代表空格

+代表重复一次或者一次以上。

所以,\s+代表一个或者一个以上的空格。

split(/\s+/,$line)表示把字符串$line,按空格为界分开。

比如说,$line="你好朋友欢迎光临我的博客61dh.com";

split(/\s+/,$line)后得到:

你好朋友欢迎访问我的博客61dh.com