您的位置:首页 > 其它

perl学习(10) 字符串处理函数和排序

2013-09-13 18:40 387 查看

1.1.index

Perl
查找子串第一次在大字符串中出现的地方,返回第一个字符的位置。
字符位置是从0
开始编号的。如果子串在字符串的开头处找到,则index
返回0。
如果子串不存在,则返回-1.
my $stuff = “Howordy world!”;
my $where1 = index($stuff,“wor”); #$where1
得到2
my $where2 = index($stuff,“w”, $where+3); #$where
得到6
my $where3 = index($stuff,“w”, $where+); #$where
为-1(没有找到)

用rindex
函数返回子串最后出现的位置

my $fred = “Yabba dabba doo!”;
my $where1 = rindex($fred, “abba”); #$where1
得到7
my $where2 = rindex($fred, “abba”, $where - 1); #$where2
得到1
my $where3 =rindex($fred, “abba”, $where2-1); #$whrere3
得到-1

1.2.substr

substr 截取处理部分的字符串。

它有三个参数:
字符串,一个从0
开始编号的初始位置(类似于index
的返回值),以及子串的长度。
返回值是一个子串
my $mineral = substr(“Fred J. Flintstone”, 8, 5); #得到“Flint”

初始位置可以是负的,表示从字符串结尾处开始

my $out = substr (“some very long string”, -3, 2); # $out
得到“in”

substr在perl里特殊的地方,可以做左值

my $string = “Hello, world!”;
substr($string, 0, 5) = “Goodbye”; # $string
现在变成了“Goodbye, world!”

赋值的(子)串长度不需要和它替换的子串长度相同。字符串会自动调整到合适的长度

#最后20个字符替换为barney

substr($string, -20) =~ s/fred/barney/g;

substr
和index
能完成的大部分工作都可由正则表达式来完成,substr
和index
通常更快,理由:它们从不是大小写无关的,他们没有元字符(metacharacters)需要担心,也不设置内存变量(memory variables)。

1.3.sprintf

使用sprintf格式化数据
my $data_tag = sprint
“%4d/%02d/%02d %02d:%02d:%02d”, $yr, $mo, $da, $h, $m, $s;
这个和c是完全一致的。

1.4.高级排序

内嵌函数sort
可以定义一些比较函数,这个和c中过的sort是一样的。

先在没有具体实例,以后用到的时候添加!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: