Perl模式匹配总结.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Perl模式匹配总结

目录

contents

正则表达式基础

Perl中正则表达式应用

模式匹配进阶技巧

常见问题及解决方案

Perl正则表达式库介绍

实战案例分享

正则表达式基础

01

字符类

使用方括号`[]`定义,可以匹配方括号中的任意一个字符。例如,`[abc]`可以匹配`a`、`b`或`c`。

量词

用于指定字符或字符类的出现次数。常见的量词有`*`(匹配0次或多次)、`+`(匹配1次或多次)、`?`(匹配0次或1次)、`{n}`(匹配n次)、`{n,}`(匹配n次或多次)、`{n,m}`(匹配n到m次)。

字符类与量词

\b表示单词边界,\B表示非单词边界。例如,\bcat\b只匹配单词cat,而不匹配concatenate中的cat。

^表示字符串开头,$表示字符串结尾。例如,^The只匹配以The开头的字符串,而end$只匹配以end结尾的字符串。

边界与锚点

锚点

边界

1

2

3

使用竖线`|`表示或关系,可以匹配该竖线前后的任意一个表达式。例如,`abc|def`可以匹配abc或def。

选择

使用圆括号`()`可以将多个字符或字符类组合成一个整体进行匹配。例如,`(abc)+`可以匹配一个或多个连续的abc。

分组

使用反斜杠``加上数字可以引用前面圆括号中捕获的内容。例如,`(w+)s+1`可以匹配两个相同的单词,如hellohello。

引用

选择、分组与引用

用于改变正则表达式的匹配行为。常见的修饰符有`i`(忽略大小写)、`m`(多行模式)、`s`(单行模式)、`x`(忽略空白字符和注释)等。

修饰符

可以在正则表达式中使用特殊的语法来修改匹配模式。例如,`(?i)abc`表示在匹配时不区分大小写,可以匹配abc、Abc、ABC等。另外,还有`(?-i)`、`(?m)`、`(?-m)`、`(?s)`、`(?-s)`、`(?x)`、`(?-x)`等用于开启或关闭相应的修饰符。

模式修饰

修饰符与模式修饰

Perl中正则表达式应用

02

基础匹配

忽略大小写

行首行尾匹配

多行模式

使用`m//`操作符进行基础的正则表达式匹配,例如`$string=~m/pattern/`。

使用`^`和`$`分别匹配字符串的行首和行尾,例如`$string=~m/^start/`和`$string=~m/end$/`。

在模式匹配时,可以使用`i`修饰符来忽略大小写,例如`$string=~m/pattern/i`。

在多行字符串中进行模式匹配时,可以使用`m`修饰符开启多行模式,例如`$string=~m/pattern/m`。

使用`s///`操作符进行基础的替换操作,例如`$string=~s/pattern/replacement/`。

基础替换

全局替换

替换并返回新字符串

替换并忽略大小写

默认情况下,`s///`只替换第一个匹配项,可以使用`g`修饰符进行全局替换,例如`$string=~s/pattern/replacement/g`。

可以使用`r`修饰符替换并返回新字符串,原字符串保持不变,例如`my$new_string=$string=~s/pattern/replacement/r`。

结合使用`i`修饰符可以忽略大小写进行替换操作,例如`$string=~s/pattern/replacement/i`。

替换操作

使用`split`函数以正则表达式为分隔符分割字符串,例如`my@parts=split/pattern/,$string`。

基础分割

可以使用第三个参数限制分割次数,例如`my@parts=split/pattern/,$string,3`。

限制分割次数

在正则表达式中使用括号捕获分隔符,可以在结果数组中保留分隔符,例如`my@parts=split/(pattern)/,$string`。

保留分隔符

分割字符串

基础捕获组

在正则表达式中使用括号创建捕获组,例如`(pattern)`。

反向引用

在正则表达式内部或替换操作中使用`n`(n为数字)引用前面的捕获组内容,例如`$string=~s/(pattern1)1/$1world/`。

命名捕获组

使用`(?namepattern)`创建命名捕获组,并通过`$+{name}`或`$+{name}`引用捕获内容,例如`$string=~m/(?yeard{4})-(?monthd{2})-(?dayd{2})/`。

非捕获组

使用`(?:pattern)`创建非捕获组,该组匹配的内容不会被捕获和存储,例如`$string=~m/(?:pattern1)pattern2/`。

模式匹配进阶技巧

03

贪婪匹配

尽可能多地匹配,

文档评论(0)

文库助手 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体温江区凯辰文华互联网信息服务工作室
IP属地四川
统一社会信用代码/组织机构代码
92510115MABXU8FU3A

1亿VIP精品文档

相关文档