perl中,如果我们要查找一个字符子串在字符串中的位置,perl给我们提供了两个函数,一个为index,另外一个rindex。从两个函数上我们其实就可以看出,index为从前往后查找(从左到右),而rindex则是从后往前(从右到左)查找。下面我们就通过一个例子来看看index和rindex是怎么工作的。
-
#! /usr/bin/perl
-
use?strict;
-
use?warnings;
-
?
-
my? $string?=? "I can learn much form perlcn.com";
-
my? $loc?=? index ( $string,"perlcn" );
-
print? "$locn";
-
$loc?=? "I" "Perlcn" rindex n";
上面这个程序的打印如下:
22
0
-1
22
从上面程序的打印结果我们也可以看出,如果index或rindex能够匹配到字符串,则会返回子字符串在整个字符串中的位置,注意此处的位置以0开始,如果在字符串中没有找到这个子串,则rindex返回-1.
当然,如果你能够判断出子串在字符串中的大概位置,你可以给rindex指出开始搜索的起始位置,例如:
"perlcn",
20
);
我们指定index从第20个字符的位置开始搜索perlcn这个字符串,这样可以大大的提供搜索的效率。