比较以下两个正则匹配:
$_ = "fred and barney went bowling last night ";
1)贪心
/fred.+barney/
过程:首先匹配成功fred,然后.+匹配之后尽量多的信息,即:and barney went bowling last night,随后barney匹配不成功,于是.+往回到字母t,再次匹配barney,还是不成功,继续.+往回直到最后barney匹配成功。
2)非贪心
/fred.+?barney/
过程:首先匹配成功fred,然后.+匹配之后尽量少的信息,即:空格,随后barnay匹配不成功,于是.+往前倒a,再匹配barney,还是不成功,继续 .+往前直到最后barney匹配成功。
可以发现:如果fred和barney比较近的时候,用贪心方式效率更好;如果fred和barney分别再两端的时候,用非贪心方式效率更好。
又如:$_ = "I thought you said Fred and Velma, not Wilma"
如果要删除的修饰符,则
1)s#.+#$1#g
得到 I thought you said Fred and Velma, not Wilma
2)s#.+?#$1#g
得到 I thought you said Fred and Velma, not Wilma
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-721956/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24104518/viewspace-721956/