日期:2014-05-17  浏览次数:20459 次

一段PHP正则的不解
PHP code

$zz2="/\<(a|A) (.*?)(href|Href)=('|\"|\\\\\"|)(.+?)><(img|IMG) (.*?)(src|SRC)=('|\"|\\\\\"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)><\/(a|A)>/is";
$text=preg_replace($zz2,"<\\6 \\7\\8=\\9\\10\\11\\12>",$text);


阅读这段"去掉图片链接"的PHP代码,
下面是对代码的一些不解:
1. 开头处 \< 的\是字符转义,但是<这个字符不是元字符,为什么要用\来转义呢?
2.后面已经有is指明不区分大小写了,前面还有必要用组合来区分(a|A)大小写吗?

------解决方案--------------------
这段正则写的太过冗长,你的理解是正确的
------解决方案--------------------
1: 加与不加都可以。
2:没有必要了。写一个即可。