以m/ /进行匹配
m// 操作符与qw // 操作符类似,可以使用任何成对的定界符,如果以双斜线作为定界符则可以省略m。
可选修饰符
/i 进行模式匹配时不分大小写
/s 匹配任意字符(包括换行符)
/x 加入空白,是程序更容易阅读,理解
锚位
^ 表示字符串的开头:/^fred/ 匹配字符串最前端的fred
$ 表示字符串的结尾:/$fred/ 匹配位于字符串最后的fred
\b 单词边界锚位,匹配任何单词的首尾:/\bfred\b/只能匹配fred,不能匹配fredrick 等等
绑定操作符 =~:默认情况下的匹配对象是$_,绑定操作符则会让perl拿右边的 来匹配左边的字符串,而非匹配$_
模式串中的内插
my $what = "larry";
while (<>){
if (/^($what)/){ #会匹配$what 的值,也可以用@ARGV命令行参数来取得:my $what = shift @ARGV
print "......" ;
捕获变量
圆括号不仅用来表示不同的模式组,也启动了正则表达式的捕获功能,其具有把所匹配的字符串记忆下来的能力,在perl里,他们的名字类似$1,$2, 有多少对括号就有多少个匹配变量。
捕获变量的生命周期
捕获变量能存活到下次成功的模式匹配为止,也就是说,失败的匹配不会改动上次成功匹配时捕获的内容,而成功的匹配则会将他们重置。
不捕获模式
在左括号的后面加上问号和冒号:(?:bribto)? 这样就会跳过bronto
自动匹配变量
$& 保存了整个的匹配段落
$` 保存了找到匹配段落之前略过的部分
$‘保存了字符串中剩下的,重来没有匹配到的部分
通用量词
除了 * + ? 这三个量词之外,还可以在花括号里指定重复次数的范围:/a{5,15}可匹配重复出现5到15 次的字母a