用index查找子字符串
查找子字符串在主字符串中的相对位置。如:
$where=index($big,$small);
注意index是从0开始的,如果查找不到就会返回-1;
加入第三个参数来指定开始搜索的地方,这样index就不会从字符串的最开头寻找。
如果搜索字符串最后出现的位置用rindex函数。
my $last_slash=rindex("/etc/passwd","/");
用substr取得子字符串
my $part=substr($string,$initial_position,$length);
如:
起始位置可以为负数,如-9代表倒数第9个字符。
my $out=substr("some very long string",-3,2);#$out为in
将index和substr紧密合作:
my $long="some very very long string";
my $right=substr($long,index($long,"l"));
接下来是很有意思的部分:假如原始字符串放在变量的里面,我们就可以修改该字符串被选取的部分内容。
如上面的例子,用来取代的子字符串不一定和被取代的子字符串长度相等,字符串会自动调整长度。
同时用=~操作符只对字符串的某些部分进行操作。如:
substr($string,-20)=~s/fred/barney/g;#对最后的20个字符进行处理,将fred替换成barney
其实substr函数赋值可以用传统的四个参数法,其中第四个参数是替换子字符串:
my $previous_value=substr($string,0,5,"Goodbye");
sprintf的用法
不想写了,估计暂时用不到。
非十进制数字字符串的转换
hex()或oct()函数将字符串转换成对应的数字。