正则表达式匹配index.html,index.htm,default.html,default.htm

时间:2011-11-23 08:24:27

标签: php regex

我正在从某个文件夹中检索一组文件,我想检测每个文件是否名为index.html,index.htm,default.html,default.htm等。而不是一个笨拙的行说

if($file=='index.html || $file=='index.htm' || $file=='INDEX.HTML')

我宁愿使用正确的正则表达式来匹配大写/小写变体等。任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:6)

怎么样:

if (preg_match('/^(index|default)\.html?$/i', $file)) {
    echo 'file matches';
}

答案 1 :(得分:5)

真的值得吗?对于处理代码的其他人来说,正则表达式更难以阅读,因此您最终会在评论中解释它,占用比原始解决方案更多的空间。

为什么不进行strtolower()和正常比较,可以使用in_array()缩写?

例如。

$names = array("index.htm", "index.html", "default.html", "default.htm");

if (in_array($file, $names))
 // do stuff