`
tjzzy
  • 浏览: 68189 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Perl 字符串处理(勘误)

阅读更多

某位仁兄写的东西有点错误,纠正之后发表于此。因为他也没有按照评论中的修改过来。

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)获取子串 substr($str,I,J);取得$str中第I+1个字符开始的J个字符。

        $str = "abcdefghijk";

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

    2)替换子串 作为左值,将替换第I+1个字符开始的J个字符。

      $str = "1234567890";

      substr( $str , 4 ,  3) = "xxxxx" ; # $str的值为"1234xxxxx890"

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

分享到:
评论

相关推荐

    18.C#字符串和正则表达式参考手册 影印版

    4.3 处理字符串 95 4.3.1 CultureInfo类 96 4.3.2 大写和小写 99 4.3.3 不需要区分文化的操作 101 4.3.4 排序 101 4.4 处理字符 106 4.4.1 关于字符的必要信息 107 4.4.2 代理对 107 4.4.3 组合字符 112 4.5 格式化...

    数字图像处理_第三版_冈萨雷斯_勘误表_英文文字版

    ### 数字图像处理_第三版_冈萨雷斯_勘误表解析 #### 一、概述 《数字图像处理》第三版是由冈萨雷斯(Rafael C. Gonzalez)和伍兹(Richard E. Woods)共同编著的一本权威教材,自出版以来就深受广大读者的喜爱与推崇。...

    STM32文档资料 stm32勘误手册

    STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档资料 stm32勘误手册STM32文档...

    essential c++ 勘误表

    - **Page 10**: 存在一个拼写错误(concatentate应为concatenate)和一处省略词(读为are),这强调了字符串操作中的常见任务——字符拼接。 - **Page 19**: “IAfter”应修正为“After”,避免了不必要的第一人称...

    C Primer Plus第6版中文版勘误表

    数组和字符串在C语言中占据重要地位,但它们的处理有时容易引发问题。比如,数组下标越界、字符串操作不当可能导致的安全隐患等。勘误表将帮助读者避免这些常见陷阱,提高程序的健壮性。 在学习C语言的过程中,正确...

    C Primer Plus 第六版中文版勘误表

    13. 第53页,图3.5下方的示例代码中,修正了字符串拼接的问题。 14. 第56页,对`printf()`函数的用法进行了修正,以确保格式化输出的正确性。 15. 第61页,介绍了无符号类型的使用,并修正了与`unsigned int`的...

    c89标准技术勘误1

    - 增加了一条规定,即头文件名预处理令牌只能在`#include`预处理指令中被识别,并且在这样的指令中,可以被视为头文件名或字符串字面量的一系列字符将被识别为前者。 - **解析**: - 这一条新增的规定明确了`#...

    C99标准(ISO_IEC9899:1999) 勘误2

    同样,字符串表示和浮点内部表示之间的转换精度也由实现定义。这意味着,对于这些操作的精度,实现可以声明其未知或不确定。这一变更强调了实现者的自由度,同时也为程序开发者提供了更清晰的指导。 ### 总结 ISO/...

    STM32F429勘误手册1

    STM32F429勘误手册1是STMicroelectronics公司针对STM32F427/437和STM32F429/439系列微控制器的修订版A、Y、1和3发布的一个错误修正文档。这些微控制器基于ARM的32位Cortex-M4核心,并集成了浮点单元(FPU)。STM32F4...

    CLR_via_CSharp中文版勘误

    ### CLR_via_CSharp中文版勘误知识点解析 #### 书籍信息 - **书名**:《CLR via C#》第三版中文版 - **版本**:2010年最新版本 - **作者**:未知(原文未提及) - **译者**:完全由同一人翻译 - **网址**:...

    STM32勘误资料

    在STM32的开发过程中,由于各种原因,可能会出现文档、代码或者硬件设计上的错误,这些错误通常被称为“勘误”。为了帮助开发者避免在使用STM32时遇到这些问题,"STM32勘误资料"提供了对这些错误的汇总,帮助用户...

    stm32f4 勘误表

    标题《stm32f4 勘误表》所涉及的知识点主要包含以下几个方面: 1. 勘误表介绍 - 勘误表是针对STM32F4系列微控制器的重要文档,用于列出产品中的错误和限制,便于工程师在开发过程中避免或解决相关问题。 - 文档...

    细说PHP勘误表

    为了确保代码的正确性和高效运行,理解并处理这些错误至关重要。"细说PHP勘误表"是一个专门针对PHP编程中常见错误和修正方法的文档,它对于正在学习或从事PHP开发的人员来说是一个宝贵的资源。这份勘误表可能包含了...

    dspic33ep 芯片勘误表

    在本勘误表中,我们主要针对dsPIC33EPXXXGP50X、dsPIC33EPXXXMC20X/50X以及PIC24EPXXXGP/MC20X系列芯片进行错误修正和数据手册澄清。 首先,勘误表针对的是已经发布的技术文档DS***H中描述的dsPIC33EPXXXGP50X、...

    模拟CMOS集成电路设计(拉扎维)勘误

    - **知识点**: 讨论了非线性电路的时域分析方法,特别是如何处理复杂的时变信号。 #### 六、集成电路布局与工艺 **6.1 电路布局优化** - **勘误**: p.518, Fig.14.48的标题应读作:(c)最大延迟。 - **知识点**: ...

    第三版(2018年11月印刷)勘误与说明1

    - 第2版:在第一版的基础上增加了36条勘误,新增了两个章节,分别是“离线分治算法”和“可持久化数据结构”,并对前三章的某些部分进行了深入讲解,涵盖位运算、递归、二分查找、字符串处理、剪枝策略和双向搜索等...

    程序员文摘第72期-精选最有价值的文章

    * Perl字符串处理(勘误):讨论了Perl字符串处理的常见错误和解决方法,帮助读者避免常见错误。 * Python正则表达式修饰符常用:介绍了Python正则表达式的使用方法和常见修饰符,帮助读者更好地使用正则表达式。 * ...

    数字图像处理冈萨雷斯第三版英文版的勘误

    《数字图像处理冈萨雷斯第三版英文版的勘误》是一个重要的资料,它纠正了原版书籍中的错误,为读者提供了准确的信息。数字图像处理是计算机科学与工程领域的一个核心分支,涉及到图像的获取、分析、理解和应用。...

Global site tag (gtag.js) - Google Analytics