perl index和rindex的用法

perl中,如果我们要查找一个字符子串在字符串中的位置,perl给我们提供了两个函数,一个为index,另外一个rindex。从两个函数上我们其实就可以看出,index为从前往后查找(从左到右),而rindex则是从后往前(从右到左)查找。下面我们就通过一个例子来看看index和rindex是怎么工作的。

  1. #! /usr/bin/perl
  2. use strict;
  3. use warnings;
  4. my $string = “I can learn much form perlcn.com”;
  5. my $loc = index($string,”perlcn”);
  6. print “$loc\n”;
  7. $loc = index($string,”I”);
  8. print “$loc\n”;
  9. $loc = index($string,”Perlcn”);
  10. print “$loc\n”;
  11. $loc = rindex($string,”perlcn”);
  12. print “$loc\n”;

上面这个程序的打印如下:

  1. 22
  2. 0
  3. -1
  4. 22

从上面程序的打印结果我们也可以看出,如果index或rindex能够匹配到字符串,则会返回子字符串在整个字符串中的位置,注意此处的位置以0开始,如果在字符串中没有找到这个子串,则index或rindex返回-1.
当然,如果你能够判断出子串在字符串中的大概位置,你可以给index或rindex指出开始搜索的起始位置,例如:

  1. my $loc = index($string,”perlcn”,20);

我们指定index从第20个字符的位置开始搜索perlcn这个字符串,这样可以大大的提供搜索的效率。



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(Spamcheck Enabled)