1、更换

s/PATTERN/REPLACE/;
#返回是否更换成功布尔值

能够使用捕获变量,如:s/(\w)/$1/

匹配失败则不做不论什么处理

2、定界符

对于没有左右之分的定界符。反复三次就可以,如:s///、s###

对于有左右之分的定界符,需使用两对,一对包括模式,一对包括替换字符串,这两对能够不一样。如:s{}{}、s[]{}、s<>[]

3、可选修饰符

/g可进行全局替换,替换全部匹配到的字符串,如:s/ / /g

/s:使得 . 匹配全部字符

/i:大写和小写无关

4、绑定操作符

$file_name =~ s#^.*##s;
#去除所哟Unix风格的路径

5、转义操作符

\U:所有转大写,或者到 \E 结束

\L:所有转小写,或者到 \E 结束

\u:其后的一个字符转大写

\l:其后的资格字符转小写

能够并用,\u\L 所有转小写,首字母大写

以上操作符能够在双引號内使用

6、拆分字符串:split

@fileds = split /:/,"abs:sdf:fdd";#返回结果列表

两个切割符连在一起,拆分出空字段。结尾处的会省略。

/\s+/能够进行空白切割。如:split /\s+/,$some_input;
#全部的空白都当作一个空格处理,省略开头的空字段

7、串接字符串:join

my $x = join ":",4,6,8,10;
#结果为$x = "4:6:8:10";

与split结合,先拆分。再用不同的定界符连接。

8、列表上下文中的m//

在列表上下文中使用m//时,假设匹配成功,返回全部捕获变量的列表。匹配失败返回空列表:my($first,$second,$third) = /(\s+) (\s+) (\s+)/;

/g 修饰符能够将m//匹配到很多地方。如:

9、非贪婪量词

默认情况下。/Fred.+barney/会先匹配“Fred”。然后将剩下的所有字符串匹配为“.+”。然后“.+”依次吐出一个字符。直到“barney”被匹配。此为贪婪模式。

在+、*、{}、?

之后加上“?”。会使其变为非贪婪模式。从少到多匹配;

/m:跨行的模式匹配,加上之后会匹配行内的换行符;

10、一次更新多个文件

$^I:表示备份文件的后缀名,处理之前会先做备份,从备份文件里读取。然后再创建与源文件同名的文件,写入新的信息;

11、用命令行进行在线编辑

-p:自己主动生成小程序,while循环

-i.bak:备份文件名称

-w:打开警告

-e:告诉程序后边是代码

fred*.dat:要处理的文件

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Perl语言学习笔记 9 正则表达式处理文本的更多相关文章

  1. Perl 学习笔记-正则表达式处理文本

    1.使用正则表达式替换文本  s///  s/<pattern>;/<replacement>;/ 如果匹配失败, 则什么也不会发生, 变量也不受影响. 返回布尔值, 替换成功 ...

  2. Perl语言学习笔记 15 智能匹配与give-when结构

    1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比較两个数组是否全然同样: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关.~~ 左右元素能够互换 2.智能操作符优先级 3.gi ...

  3. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  4. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  5. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  6. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  7. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  8. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  9. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

随机推荐

  1. 阿根廷探戈(Argentine Tango)舞步

    阿根廷探戈(Argentine Tango)舞步 阿根廷探戈(Argentine Tango)舞步 2011-11-22 13:05:11   不像其它大部分的社交舞,阿根廷探戈没有固定的舞步,它是一 ...

  2. JAVA学习笔记 -- 数据结构

    一.数据结构的接口 在Java中全部类的鼻祖是Object类,可是全部有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Colle ...

  3. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

    public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...

  4. PEM文件格式具体解析

    PEM文件格式存档 Author:Roson sun sunxiao@tomonline-inc.com Time:2006-4-11 1.  描写叙述: Openssl使用PEM(RFC 1421- ...

  5. MFC用GDI+动感歌词的制作

    源代码:http://download.csdn.net/detail/nuptboyzhb/4219669 源代码: 1.       插入一个对话框的资源,删除默认控件,并为对话框创建一个类,命名 ...

  6. android优化原理

    时间换时间: 数据的异步载入 分批载入. 开机加速. 时间换空间:  分页. 空间换时间: everything.exe 音乐 图库 在开机启动后, sd卡被挂载 生成数据库. 空间换空间: 8G内存 ...

  7. 在WEB工程的web层中的编程技巧

    本篇以看传智播客方立勋老师的<JDBC入门>之<实现客户关系管理案例>视频有感,从中提取方老师在设计管理系统的简单案例中对自己比较有用的部分,以便日后在开发过程中希望能有所帮助 ...

  8. TensorFlow实现与优化深度神经网络

    TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林Github工程地址:https://github.com/ahangchen/GDLnotes欢迎star,有问题可以到Issue ...

  9. iOS基本控制-UINavigationController 传统的价值观,代理传统价值观,正向传统价值观,反传统的价值观

    /*        程序过程:  1.创建一个根视图,一个二级视图  2,根视图NavigationItem.title = Root 二级视图NavigationItem.title = Secon ...

  10. OpenStack优先

    http://www.lagou.com/jobs/1623064.html http://www.lagou.com/jobs/1406144.html