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

perl学习记录(三)

发布时间:2020-12-16 00:15:07 所属栏目:大数据 来源:网络整理
导读:perl学习记录之正则表达式学习记录 模式中引入了不少特殊字符,叫做元字符,在正则表达式中表达特殊的含义。 1、( . )?点号是任何单字符的匹配符,除了换行符( n )。 2、在任何元字符面前加上反斜线,就会使它失去元字符的特殊作用。 3 、量词:星号 (*

perl学习记录之正则表达式学习记录


模式中引入了不少特殊字符,叫做元字符,在正则表达式中表达特殊的含义。

1、(.)?点号是任何单字符的匹配符,除了换行符(n)。

2、在任何元字符面前加上反斜线,就会使它失去元字符的特殊作用。

3、量词:星号(*)正是用来匹配前面内容零次或者多次的。

??加号(+)是匹配前面内容一次以上的。

??问号(?)匹配前面内容可有可无,有的话匹配出现一次。

??通用量词{},如果上面三个量词都不需要,还可以在花括号里指定重复次数的范围。

4、模式分组:圆括号()。圆括号也是元字符。1?2的写法就是在使用反响引用。

Perl5.10有一种新的反向引用写法g{N},其中N是反向引用的组号。

5、择一匹配(|)

6、字符集,字符集是指一串可能出现的字符集合,通过写在方括号[]内来表示。但它只匹配单个字符,但可以是字符集里列出的任何一个。在方括号[]中用的比较多的是连字符(-)。在方括号[]以外连字符只是普通字符。

也可以在字符集内部开头的地方加上脱字符(^),表示这些字符除外。也就是说[^abc]会匹配除abc以外的任何字符。

7、d?代表任意数字的字符集[0-9]w代表单词字符字符集[A-Za-z0-9_]

8、s简写擅长处理空白,相当于[ftnr?],包含5中空白的字符集:换页,制表,换行,回车以及空格。

9、D相当于[^d]W相当于[^w]S相当于[^s]

10、可选修饰符:

使用/i修饰符时,可以让你在进行模式匹配时不区分大小写。例如/yes/i?可以匹配yes??YES等。

使用/s修饰符时,可以让模式中的(.)点号相当于[dD],能够匹配换行符。

使用/x修饰符能够在模式里面随意加上空白,目的是使他更容易阅读,理解。

当然这些可选修饰符可以组合使用。也当然有很多其他的选项,这里不一一介绍了。

11、锚位,默认情况下,模式匹配的过程开始于待匹配字符串的开头,如果不相符就一直往字符串后面浮动,看其他位置是否能匹配。但是加入一些锚位,可以让模式直接匹配字符串的某处。脱字符(^)是一个锚位,用来表示字符串的开头,美元符号($)也是一个锚位,用来表示字符串的结尾。

单词锚位,锚位并不局限于字符串的首尾。比如b是单词边界锚位。B是非单词边界锚位。

12、在perl中,默认情况下模式匹配的对象是$_,绑定操作符=~则能让Perl拿右边的模式来匹配左边的字符串,而非匹配$_

例如if($some_other=~/perl/){}

13、捕获变量,圆括号同时同时也启动了正则表达式处理引擎的捕获功能。捕获功能是指把(圆括号中模式所匹配的)部分字符串暂时记下来的能力。每个被捕获的是原本的字符串,而不是模式。被捕获的字符串存储在标量变量中,他们的名字类似$1或者$2$2的意思就是第2对括号捕获的字符串。

14、针对第13条,如果不做处理,圆括号都会捕捉部分的匹配串到捕获变量$1$2中等,但有时侯需要关闭这个功能。在左括号的后面加上问号和冒号(?:),以告知Perl这一对括号完全是为了分组而存在的。

15、命名捕捉,即我们可以把我们捕捉的字符串存能够用我们自己命名的LABLE来表示,而不再用$1$2等来表示。为捕获串加标签的方法是使用(?<LABEL>PATTERN)这样的方式,而使用捕获的字符串时则用$+{LABEL}这样的形式来表示。

16、元字符的优先级次序

圆括号 量词 锚位和序列 择一 元素

(编辑:李大同)

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

    推荐文章
      热点阅读