Perl之正则表达式基础(一)

来源:互联网 发布:lasercad软件下载 编辑:程序博客网 时间:2024/05/18 01:26

        正则表达式是一种特殊的语言写成的程序,内嵌于Perl之中。Perl被设计为90%用来做文本处理,而正则表达式就在文本处理中发挥着重要的作用。其实,正则表达式不仅仅是Perl的一部分,传统的shell命令,如sed/awk/grep,和常用的文本编辑器,如vi,都有它的踪影。当然,不同的正则表达式实现中,语法会有稍许的不同。接下来,我将介绍Perl中关于正则表达式的一些基础知识。

 

        元字符

        点(. ):通配符,可以匹配任何单个字符,但不包括换行符(“/n”);/.,前加反斜线可以使其变为普通的字符。

       反斜线(/):一般用来做转义,如果想要真正的反斜线,需要重复使用两个反斜线(//)。

       括号(()):用来表示分组。

 

        简单的量词

        星号(*):表示匹配前一项0次或者多次。(.*)被称为任意字符串匹配模式(注意不包括换行符)。

       加号(+):表示可以匹配前一项1次或者多次。

       问号(?):表示可以匹配前一项0次或者1次。

 

        选择符

        竖线(|):通常被读作“或(or)”,意思是匹配左边的或者右边的。

 

        字符类

        方括号[]中的一列字符,可以匹配上括号内出现的任意单个字符。它只匹配一个字符,但这个字符可以是列表中的任意一个。

       字符类前使用符号^将取此字符类的补集。

       /d:任何数字的类,相当于[0-9]。

       /w:被称作‘word’字符,相当于[A-Za-z_0-9]。

       /s:空白字符类,相当于[/f/t/n/r]。

       相应的补集:

       ^/d:又可以写作/D。

       ^/w:又可以写作/W。

       ^/s:又可以写作/S。

 

        修饰符

        通常叫做标记(flag),可以后缀在正则表达式后面来改变其默认的行为。

       /i:不区分大小写,创建大小写无关的模式。

       /s:匹配任何字符,将模式中点(.)的行为变成同字符类[/d/D]类似,可以匹配任何字符,包括换行符。

       /x:添加空白,允许在模式两端加入任何数量的空白,方便阅读。在匹配时,这些空白将被忽略。注意,Perl中注释可以被作为空白。

 

原创粉丝点击