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

【正则】为什么这写也有效呢?
本帖最后由 php441914320 于 2012-12-10 12:28:48 编辑
匹配压缩包文件名(x.rar x.rar x.7z):

我是这么写的:
'/^\w+\.rar$|^\w+\.zip$|^\w+\.7z$/i'

但是后来发现这么写也可以:
'/^\w+\.rar|zip|7z$/i'


关于“|”这个符号的理解还是不到位啊,求指教。

关于第二个正则表达式,按我的理解应该这样执行:
比如我有已经压缩包名为“test.rar”
第一个匹配:“test.rar”匹配是失败的。
第二次匹配:应该匹配“zip”但为什么匹配了“^\w+\.zip$”?


------解决方案--------------------
最好读一下文件的头信息,服务器端验一下文件的真实性~
引用:
引用:推荐一个函数, pathinfo();
PHP code?1/^\w+\.(rar
------解决方案--------------------
zip
------解决方案--------------------
7z)$/i
这么写就没问题了,o(∩_∩)o 哈哈。