麻烦高手,来帮我简化这段正则表达式

linxue_ 2002-05-15 04:14:26
if(eregi(".htm",$file)||eregi(".txt",$file)||eregi(".inc",$file)||eregi(".php",$file)||eregi(".pl",$file)||eregi(".cgi",$file)||eregi(".asp",$file)||eregi(".css",$file)||eregi(".js",$file)){

}


...全文
51 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhongshan99 2002-05-25
$patten='/\w+(?=\.asp|\.php|\.html)/i';

就是匹配***.asp ***.php 等等了,把自己需要的都加在后面。

(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

上面这一段是我复制的了。

以前,csdn上面有人发表过专门介绍正则表达式的文章了。
这就是其中的内容的。

preg_match ,是perl风格的匹配了。如果以前用过perl,可能更习惯这个函数的了。
回复
imjoksky 2002-05-25
eregi("\.(asp|php|htm|txt|pl|css|js|inc)",$file)
回复
linxue_ 2002-05-17
$patten='/\w+(?=\.asp|\.php|\.html)/i';
if(preg_match($patten,$file)){
}
这段我看不大明白,解说一下好吗?

回复
zhongshan99 2002-05-16
$patten='/\w+(?=\.asp|\.php|\.html)/i';
if(preg_match($patten,$file)){
}
回复
y10k 2002-05-15
楼上的,禁止抄袭。。。。。。。。。
除非贴明出处
回复
bombshell 2002-05-15
$file_ext = strtolower(substr(strrchr($filename, '.'), 1));

$allow_type = array('html', 'txt', ..........);

if(in_array($file_ext, $allow_type)) echo 'yes';

========================================
偶的论坛:
www.chinesehis.com/starry/index.php
回复
jyc_nj 2002-05-15
关注
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2002-05-15 04:14
社区公告
暂无公告