加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl字符串处理函数

发布时间:2020-12-16 00:18:15 所属栏目:大数据 来源:网络整理
导读:1,index position = index (string,substring,position) 返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或者说从该位置开始匹配。 例子如下: [root@localhost ~]# echo -n '/var/fap/te

1,index
position = index (string,substring,position)
返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或者说从该位置开始匹配。

例子如下:
[root@localhost ~]# echo -n '/var/fap/test/123' | perl -ne '$rev=index($_,"a"); print $rev,"n";'
2
[root@localhost ~]# echo -n '/var/fap/test/123' | perl -ne '$rev=index($_,"a",1); print $rev,3); print $rev,"n";'
6
[root@localhost ~]# echo -n '/var/fap/test/123' | perl -ne '$rev=index($_,7); print $rev,"n";'
-1


2,rindex
position = rindex (string,position)
与index类似,区别是从右端匹配。

例子如下:

[root@localhost ~]# echo -n '/var/ftp/tesa/123' | perl -ne '$rev=rindex($_,11); print $rev,"n";'
2
[root@localhost ~]# echo -n '/var/ftp/tesa/123' | perl -ne '$rev=rindex($_,12); print $rev,"n";'
12
[root@localhost ~]# echo -n '/var/ftp/tesa/123' | perl -ne '$rev=rindex($_,"n";'
-1
[root@localhost ~]# echo -n '/var/ftp/tesa/123' | perl -ne '$rev=rindex($_,2); print $rev,"n";'
2


3,length
num = length (string)
返回字符串长度,或者说含有字符的数目。

[root@localhost ~]# echo -n '/var/ftp/tesa/123' | perl -ne '$rev=length($_); print $rev,"n";'
17
[root@localhost ~]# echo -n '/var/ftp/tesa/123? ' | perl -ne '$rev=length($_); print $rev,"n";'
19


4,substr
substr (expr,skipchars,length)
抽取字符串(或表达式生成的字符串)expr中的子串,跳过skipchars个字符,或者说从位置skipchars开始抽取子串(第一个字符位置为0),子串长度为length,

此参数可忽略,意味着取剩下的全部字符。
当此函数出现在等式左边时,expr必须为变量或数组元素,此时其中部分子串被等式右边的值替换。

substr() 函数的作用有两个:替换一部分子串。 删除一部分子串。

[root@localhost ~]# echo -n '/var/ftp/test/123' | perl -ne '$rev=substr($_,9,);print $rev,"n";'
test/123
[root@localhost ~]# echo -n '/var/ftp/test/123' | perl -ne '$rev=substr($_,4);print $rev,"n";'
test

替换:
[root@localhost ~]# echo -n '/var/ftp/test/123' | perl -ne '$rev=substr($_,4)="hello"; print $rev,"n";'
hello
删除:
[root@localhost ~]# echo -n '/var/ftp/test/123' | perl -ne '$rev=substr($_,4)=""; print $rev,"n";'


5,lc,uc,lcfirst,ucfirst
lc,将字符串改为小写
uc,将字符串改为大写
lcfirst,改变字符串首字母小写
ucfirst,改变字符串首字母大写

[root@localhost ~]# echo -n 'hello,hanli' | perl -ne '$rev=uc($_); print $rev,"n";'
HELLO,HANLI
[root@localhost ~]# echo -n 'HELLO,hanli' | perl -ne '$rev=lc($_); print $rev,"n";'
hello,hanli
[root@localhost ~]# echo -n 'hello,Hanli' | perl -ne '$rev=ucfirst($_); print $rev,"n";'
Hello,Hanli
[root@localhost ~]# echo -n 'hello,Hanli' | perl -ne '$rev=lcfirst($_); print $rev,Hanli

6. Perl字符串处理函数名 pos

调用语法offset=pos(string);

解说返回最后一次模式匹配的位置。

7. Perl字符串处理函数名 quotameta
调用语法newstring=quotemeta(oldstring);

解说将非单词的字母前面加上反斜线()。

语句:$string=quotemeta($string);
等效于:$string=~s/(W)/$1/g;

常用于模式匹配操作中,确保字符串中没有字符被看作匹配操作符。

8. Perl字符串处理函数名 join

调用语法join(joinstr,list);

解说把字符串列表(数组)组合成一个长的字符串,在每两个列表元素间插入串joinstr。

9. Perl字符串处理函数名 sprintf

调用语法sprintf(string,fields);

解说与printf类似,区别是结果不输出到文件,而作为返回值赋给变量。

例子$num=26;

$outstr=sprintf("%d=%xhexadecimalor%ooctaln",$num,$num);

print($outstr);

结果输出26=1ahexadecimalor32octal

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读