perl学习笔记——字符串和排序

时间:2021-12-10 19:44:50

用index查找子字符串

查找子字符串在主字符串中的相对位置。如:

$where=index($big,$small);

注意index是从0开始的,如果查找不到就会返回-1;

加入第三个参数来指定开始搜索的地方,这样index就不会从字符串的最开头寻找。

perl学习笔记——字符串和排序

如果搜索字符串最后出现的位置用rindex函数。

my $last_slash=rindex("/etc/passwd","/");

用substr取得子字符串

my $part=substr($string,$initial_position,$length);

如:

perl学习笔记——字符串和排序

起始位置可以为负数,如-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"));

接下来是很有意思的部分:假如原始字符串放在变量的里面,我们就可以修改该字符串被选取的部分内容。

perl学习笔记——字符串和排序

上面的例子,用来取代的子字符串不一定和被取代的子字符串长度相等,字符串会自动调整长度。

同时用=~操作符只对字符串的某些部分进行操作。如:

substr($string,-20)=~s/fred/barney/g;#对最后的20个字符进行处理,将fred替换成barney

其实substr函数赋值可以用传统的四个参数法,其中第四个参数是替换子字符串:

my $previous_value=substr($string,0,5,"Goodbye");

sprintf的用法

不想写了,估计暂时用不到。

非十进制数字字符串的转换

hex()或oct()函数将字符串转换成对应的数字。

perl学习笔记——字符串和排序