码迷,mamicode.com
首页 > 其他好文 > 详细

perl学习(二)正则表达式

时间:2017-02-12 19:06:55      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:sel   捕获组   文字   字符   elf   rac   匹配   写法   bcd   

模式分组:

/fred+/会匹配freddd这样的

/(fred)+/会匹配fredfredfred这样的

/(fred)*/则会匹配abcdef任意的

圆括号同时也使得重新使用某些字符串成为可能。反向引用来引用圆括号中的模式所匹配的文字,这个行为我们称为捕获组。

反向行为的写法是在反斜线后面接上数字编号,比如\1, \2这样,对应的数字表示对应顺序的捕获组。

$_ = "abba";
if (/(.)\1/) { # 匹配 ‘bb‘
        print "It matched same character next to itself!\n";
}

 

$_ = "yabba dabba doo";
if (/y(....) d\1/) { # 匹配 ‘yabba dabba‘
    print "It matched same after y and d!\n";
}

 

$_ = "yabba dabba doo";
if (/y(....) c\1/) { # 不匹配
    print "It matched same after y and d!\n";
}

 


$_ = "yabba dabba doo";
if (/y((.)(.)\3\2) d\1/) { # 匹配  ‘yabba dabba‘
    print "It matched!\n";
}

 

反向引用用\g{N}更明晰

$_ = "aa11bb";
if (/(.)\g{1}11/) { # 匹配 ‘aa11‘
    print "It matched:aa11!\n";
}

perl学习(二)正则表达式

标签:sel   捕获组   文字   字符   elf   rac   匹配   写法   bcd   

原文地址:http://www.cnblogs.com/luhouxiang/p/6391452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!