perl学习记录(三)

前端之家收集整理的这篇文章主要介绍了perl学习记录(三)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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简写擅长处理空白,相当于[\f\t\n\r ],包含5中空白的字符集:换页,制表,换行,回车以及空格。

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

10、可选修饰符:

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

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

使用/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、元字符的优先级次序

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

猜你在找的Perl相关文章