什么叫正则表达式
正则表达式,在perl中常常叫做模式,是一个匹配或不匹配某字符串的模板。
使用简易模式
$_ = "yaabba dabba doo";
if(/abba/){
print "It matched!\n"; #若匹配的对象是$_的内容,只要把模式写在一对正斜线(/)就可以了。
}
简易的量词
*号用来匹配前面的内容零次或者多次:/fred\t*barney/能匹配fred和barney 之间任意多个制表符的串,除了制表符,不能出现其它字符。
.*会匹配任意字符无限多次,通吃所有字符串。
+会匹配前一个条目一次以上,/fred +barney/会匹配fred 与barney 之间用空格隔开而且只用空格隔开的字符串,不会匹配fredbarney。
? 表示匹配一次或者不匹配。
模式分组
用圆括号来进行分组,如:/fred+/会匹配像fredddddd这样的字符串,而/(fred)+/则会匹配像fredfredfred这样的字符串。我们可以用反向引用来应用圆括号中匹配的文字:\1 \2,反斜线后面的数字和括号的组号匹配。
择一匹配
|表示左边匹配或者右边匹配都行。
字符集
字符集是指一串可能出现的字符集合,用[ ]来表示。[abcwxyz]着7个字符中的任何一个,如果在字符集内部加上脱字符^表示这些字符除外:[^abc]表示匹配这三个字符以外的任何字符。