本文和大家重点讨论一下Perl substr函数应用,在编写perl程序的时候,我们有时需要截取一个字符串中的部分内容,这个时候通常会使用substr函数实现这个功能。
Perl substr函数应用
在编写perl程序的时候,我们有时需要截取一个字符串中的部分内容,这个时候通常会使用Perl substr函数实现这个功能。
- viewplaincopytoclipboardprint?
- $str="testtest";
- printsubstr($str,0,5);
- $str="testtest";
- printsubstr($str,0,5);
运行上面的程序,输出结果"testt",这个是我们想要的结果。再看看下面的程序:
- viewplaincopytoclipboardprint?
- $str="测试文本";
- printsubstr($str,0,1);
- $str="测试文本";
- printsubstr($str,0,1);
这时候输出了一个"?",这显然不是我们想要的结果。因为在perl中,所有从外部输入的字符串(包括写在程序里的字符串)都会当成字节来处理,"printsubstr($str,0,1);"这句话只是把"测试文本"的***个字节取出来,并且用print输出,然而单个字节是不能表示一个中文字符的,所以就输出了"?"。
如果想要上面的程序输出正确的结果,就需要使用decode函数把"测试文本"转换成perl内部字符串,让perl把"测试文本"当成字符串来处理,这样再用"substr($str,0,1);"截取的就不是一个字节,而是一个汉字。
◆下面看一下Perl substr函数的用法:
指令:substr
语法:substr($string,offset,length)
offset代表起始字符的位置,length代表引用的字符串长度,如果省略length则代表从起始值到字符串的***一个字符长度。而offset如果是负值的话,就会从字符串右边开始指定字符。
示例:
- $s=substr("perl5",2,2);#这时$s="rl";
- $s=substr("perl5",2);#这时$s="rl5";
- $s=substr("perl5",-2,2);#这时$s="er";
【编辑推荐】