Perl语言学习笔记 9 正则表达式处理文本

时间:2024-01-22 08:40:23

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//匹配到很多地方。如:

Perl语言学习笔记 9 正则表达式处理文本

9、非贪婪量词

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

在+、*、{}、?

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

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

10、一次更新多个文件

Perl语言学习笔记 9 正则表达式处理文本

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

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

Perl语言学习笔记 9 正则表达式处理文本

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

-i.bak:备份文件名称

-w:打开警告

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

fred*.dat:要处理的文件

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