脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - perl - Perl 字符串处理备忘录

Perl 字符串处理备忘录

2020-06-10 10:30脚本之家 perl

Perl字符串处理学习备忘录,包括chop和chomp函数、getc函数、拼接字符串、分割字符串、重复拼接字符串、字串替换等。有需要的朋友,可以参考下

1. chop和chomp函数

 两个函数都以字符串作为参数,并去除其末尾最后一个字符。区别是,无论最后一个字符是什么,chop都会去除,并在返回值中返回;而仅当字符串最后一个字符与特殊变量$/保存的字符一样时,chomp才会将其去除。默认情况下$/保存换行字符,当然可以重设。
  1)如果函数参数是一个字符串数组,那么函数会分别对数组中的每个元素调用。
  2)如果函数参数是一个符合列表(即列表中还有其他列表或HASH表),则可以认为保存在参数列表中的是每个复合容器的地址(指针),而此时chop会将地址作为一个字符串处理,从而破坏整个复合列表。
  顺带一提,如果一个变量是保存数值类型,而非字符串,该函数会把变量保存的数值解释成字符串。

2. getc函数

 getc函数的参数只有一个,就是文件句柄,如果要从标准输入流读入,就使用STDIN。该函数返回读取的字节,要注意的是,如果读取的是文件流,则在EOF处函数返回空字符串,即'';如果读取标准输入流,则会一直阻塞。

3.拼接字符串

 使用join函数可以拼接各个字符串,签名为join(delmiter, list)。其中delimiter是一个分隔字符串,在拼接结果中各个分离字符串以该delimiter分隔;list则是各个分离的字符串,也可以是一个保存着若干字符串的数组。

 

复制代码 代码如下:

  $str1 = "stringA" ;  $str2 = "stringB";
  $combine = join '::' , $str1 , $str2 ;  #$combine值为::stringA::stringB
  @list1 = ( $str1 , $str2 );  @list2 = qw ( stringC  stringD );
  $combine = join '_' , @list1 , @list2 , $str1 ;  #$combine值为_stringA_stringB_stringC_stringD_stringA

 

分隔符使用"\n"时,就可以拼接成垂直列表了。

4.分割字符串

使用split函数进行字符串分割。
split(delimiter , string , count)
delimiter是分隔符,默认是空格(以tab,空格等进行分割)
string是被分割的字符串,不指定该参数时,对$_进行分割
count允许分割的最大份数,当实际可以分割的份数超过该值时,第count份子串将保存剩余的字符串
函数返回一个数组,里面保存分割的所有字串

5.重复拼接字符串

Perl中的 x 操作符,注意操作数必须左边可解析成字符串,右边可解析成数值。

 

复制代码 代码如下:

$str1 = "abc";
$str2 = $str1 x 5;   # $str2的值为 "abcabcabcabcabc"

 

6.字串替换

substr(string, offset, length):
string:原字符串 , offset:字串所在原字符串中的起始位置,length:字串长度
该函数有两种用法:
1)获取子串

复制代码 代码如下:

$str = "abcdefghijk";
$sstr = substr( $str , 5 , 3 );   # $sstr的值为"efg"

 

2)替换子串

复制代码 代码如下:

$str = "1234567890";
substr( $str , 4 ,  3) = "xxxxx" ; # $str的值为"123xxxxx7890"

 

函数的第三个参数指定的是被替换子串的长度,因此不影响新替换的字串的长度。

延伸 · 阅读

精彩推荐
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一个pragma(预编译指示符),专门用来预定义全局变量,这些预定义后的全局变量在qw()列表中,在整个引用perl文件中皆可使用,即便使...

    perl教程网6812020-06-16
  • perlperl pop push shift unshift实例介绍

    perl pop push shift unshift实例介绍

    perl的pop跟push操作数组的最右边,shift跟unshift操作数组的最左边 ...

    脚本之家4612020-06-10
  • perlPerl的经典用法分享

    Perl的经典用法分享

    Perl的经典用法分享,学习perl的朋友可以参考下 ...

    脚本之家6562020-06-06
  • perlperl常见问题集合之二

    perl常见问题集合之二

    哪些平台上有 Perl?要到哪里去找? Perl的标准发行版(由 perl 发展小组负责维护)仅以原始码形式发行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz处取得。这个档...

    脚本之家2102020-05-29
  • perlPerl从文件中读取字符串的两种实现方法

    Perl从文件中读取字符串的两种实现方法

    有时候我们需要从文件中读取字符串,这里简单介绍下, 需要的朋友可以参考下 ...

    脚本之家6252020-06-08
  • perlperl命令行参数内建数组@ARGV浅析

    perl命令行参数内建数组@ARGV浅析

    这篇文章主要介绍了perl命令行参数内建数组@ARGV浅析,本文重点在于讲解@ARGV的用法,并通过实例来说明,需要的朋友可以参考下 ...

    perl教程网6162020-06-18
  • perlPerl List::Util模块使用实例

    Perl List::Util模块使用实例

    这篇文章主要介绍了Perl List::Util模块使用实例,本文给出扫描符合条件的某个列表并取出第一个符合条件的、求1到1000之间的和 、求一组数字的最大值与最小...

    脚本之家4712020-06-22
  • perlPerl使用nginx FastCGI环境做WEB开发实例

    Perl使用nginx FastCGI环境做WEB开发实例

    这篇文章主要介绍了Perl使用nginx FastCGI环境做WEB开发实例,实现了路由系统和模板系统,需要的朋友可以参考下...

    Perl教程网2412020-06-18