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

来源:互联网 发布:温州动车事故真相 知乎 编辑:程序博客网 时间:2024/05/22 15:51

上一篇我介绍了一些Perl中正则表达式的基础知识(元字符、简单的量词、字符类等),接下来我将继续介绍Perl中正则表达式的其它基础知识。

 

锚定

^:表示在字符串的开头进行匹配。

$:表示在字符串的结尾进行匹配,不考虑是否存在换行符。

 

词锚定

/b:词界锚定,针对单词使用。

/B:非词界锚定,将在任何非/b匹配的点上进行匹配。

 

绑定操作符

=~:对$_进行匹配只是默认的行为,使用=~相当于告诉Perl将右边的模式在左边的字符串上进行匹配,而非对$_。

 

模式内的内插

正则表达式模式用也可以使用Perl变量,如/^($what)/,该模式中的$what将被替换成已存在的$what变量的值。

 

自动匹配变量

$&:正则表达式模式匹配上的那部分字符串将自动存储在其中。

$`:正则表达式模式在匹配成功前所找到的字符串将自动存储在其中。

$':正则表达式模式还未匹配的剩余部分将自动存储在其中。

以下面的Perl代码为例,其中$& = " there,",$` = "Hello",$' = " neigbor"。

 

一般的数量词

{ , }:花括号中有两个数字,由逗号隔开,表示前一项允许重复的次数。如模式/a{5,15}/将匹配5个至15个a中的任意一种,包括5个或15个。如果省略掉第二个数字(保留逗号),如/a{5,}/则表示无上限,可以匹配5至无穷多个。如果逗号也被省略了,将匹配确定的次数,像这里的5次,即只匹配aaaaa。

星号(*):等同于{0,}。

加号(+):等同于{1,}。

问号(?):等同于{0,1}。

 

优先级

共只有4个级别,如下:

1、最顶端的是括号();

2、第二级是数量词,*、+、?、{,}等;

3、第三级是锚定和序列;

4、优先级最低的是选择符竖线(|)。

原创粉丝点击