用index查找子字符串

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

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

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

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

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

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

用substr取得子字符串

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

如:

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

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

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

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

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

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

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

sprintf的用法

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

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

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

perl学习笔记——字符串和排序的更多相关文章

  1. Effective STL 学习笔记 31:排序算法

    Effective STL 学习笔记 31:排序算法 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  2. 《python基础教程(第二版)》学习笔记 字符串(第3章)

    <python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...

  3. 【Redis】命令学习笔记——字符串(String)(23个超全字典版)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...

  4. Perl 学习笔记-正则表达式基础篇

    1.Perl中的正则表达式 在Perl中叫做模式, 是一个匹配(或不匹配)某字符串的模板, 是一种小程序, 对于一个字符串, 要么匹配, 要么不匹配. 使用简易模式: 将模式写在一对正斜线(/)中即可 ...

  5. perl学习(10) 字符串处理函数和排序

    1.1.index Perl 查找子串第一次在大字符串中出现的地方,返回第一个字符的位置. . . my $stuff = “Howordy world!”; my $where3 = index($ ...

  6. Perl 学习笔记-标量数据

    最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...

  7. es6学习笔记--字符串&数值&数组&函数&对象的扩展

    这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...

  8. Perl 学习笔记-列表和数组

    笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...

  9. perl学习笔记——目录操作

    在目录书中移动 chdir 操作副改变当前的工作目录.它和shell中cd命令类似: chdir ‘/etc’ or die “cannot chdir to /etc:$1”; 注意:工作目录不能更 ...

随机推荐

  1. 【转】Spring Bean属性解析

    转载自:http://wenku.baidu.com/view/30c7672cb4daa58da0114ae2.html Bean所以属性一览: <bean id="beanId&q ...

  2. OleDbDataAdapter具体使用

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. JavaScript的for循环语句

    语法格式 for(初始化值;循环的条件;每一次循环的递增值){ // 循环的条件结果为true,则执行循环体中的代码 } 示例(打印出1-10之间的整数): for(var a=1;a<=10; ...

  4. selenium 警告框处理 (弹窗处理)

    在web应用中常常会遇见很多用JavaScript编写的alert .confirm 以及prompt 弹窗,这是就需要driver.switchTo().alert()来选取(定位)警告弹窗.再对弹 ...

  5. Selenium2+python自动化66-装饰器之运行失败截图【转载】

    前言 对于用例失败截图,很多小伙伴都希望在用例执行失败的时候能自动截图,想法是很好的,实现起来并不是那么容易. 这里分享下我的一些思路,当然目前还没找到完美的解决方案,我的思路是用装饰器去解决,希望有 ...

  6. Annotation(注解)代替配置文件

    非注解形式,即指在配置文件中配置相关参数,使实体类.参数各方面分离.注解方式,即annotation方式,是jdk提供的一种注入或配置方式.即将实体类与相关参数都在一起,只是通过@annotation ...

  7. hdu 1513(滚动数组)

    Palindrome Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  8. yii2中判断数据表是否存在数据库中(原创)

    分为两步: 第一步,找出数据库中所有表名,表名得到的是二维数组. 第二步,判断表名是否存在二维数组中 下面就贴我的代码咯. $table_name =‘table’; $juge = $handle- ...

  9. [BZOJ4520][Cqoi2016]K远点对 kd-tree 优先队列

    4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 1285  Solved: 708[Submit][Statu ...

  10. [centos] 需要 libmpc.so.2 提供下载

    http://pan.baidu.com/s/1kTmmthH yum update 的时候需要libmpc.so.2, 于是下载了一个 rpm -ivh filename.rpm  安装上就好了