加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 23:54:27 所属栏目:大数据 来源:网络整理
导读:1、替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(w)/$1/ 匹配失败则不做任何处理 2、定界符 对于没有左右之分的定界符,重复三次即可,如:s///、s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字

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:其后的资格字符转小写

可以并用,uL 全部转小写,首字母大写

以上操作符可以在双引号内使用

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:要处理的文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读