perl模式匹配总结正则表达式――perl模式匹配PractiaclExtractionandReportLanguage一.模式匹配操作符1.tr///替换操作符不支持正则表达式也不具备双引号替换能力m//s///都支持正则表达式,并且可以提供或限制双引号替换能力(当用单引号作为操作符时则不具备变量替换能力)s///,tr///可以用两组不同的括号进行分割,以保证格式清晰s(good)2.绑定操作符=~,
~,m//s///tr///都支持绑定操作符的优先级非常高3
perl特有的全局变量1
$`,$&,$’分别存有匹配内容左,匹配内容,匹配内容右的内容2.可以用()捕获特定的模式并依次存入$1$2$3中二.模式修饰词m//s///和tr///的修饰词不同/i忽略字母大小写/s/m允许模式中存在换行符(一般模式中不允许存在换行符)/x允许模式中换行,并表明注释,使正则表达式更易读/o只编译一次,针对模式中的变量代换/g无穷匹配三.m//匹配1.分隔符用
或‘作分隔符时有特殊的含义m
表示只匹配一次m’‘表示禁止变量替换和六种转换2
返回值标量环境里匹配成功返回1,失败返回0列表环境里,返回子字串的列表,并捕获()中的模式($key,$value)=~m/(\w+:(\
*)/;/g修饰词的返回值列表环境:返回所有匹配字串的列表如:my@perls=$string=~m/perl/ig;如果有捕获圆括号,则返回捕获到的字串如:用字串$string=“password=xyzzyverbose=9score=0”初始化下面的散列:%hash={password=>“xyzzy”,verbose=>9,socre=>0};%hash=$string=~/(\w+)=(\w+)/g;标量环境中/g表示一次渐进的匹配,它令perl从上一次匹配停下来的位置开始一次新的匹配如:whi