排除文件夹,并使用正则表达式匹配根文件夹中的所有.html模式文件
问题描述:
我需要编写一个正则表达式,它匹配除images文件夹以外的所有文件夹中的所有.html文件。排除文件夹,并使用正则表达式匹配根文件夹中的所有.html模式文件
下面是HTML文件格式
/magazines/sample.html
/test/index.html
/test/format_ss1.html
/test/folder/newstyle_1.html
/images/two.html
我需要得到的只有前2个HTML文件,即,我们exluding与结尾的文件 '_ [0-9]' 和“_ss [0-9 ]'和.hmtl文件在图像文件夹中。
我已成功通过排除3和4,但我无法在图像文件夹中打开.html文件。
$regex = '/[a-zA-Z0-9\-][^_ss\d][^_\d]+\.html/'; //this will do for 3 and 4 files
,但我需要exlude图像文件夹..
我试图像
$regex = '/[^images\/][a-zA-Z0-9\-][^_ss\d][^_\d]+\.html/'; // not working
可以有一个人帮助我这个..
答
有一试:
~^(?!/images/)[a-zA-Z0-9/-]+(?!_ss\d|\d)\.html$~
在动作:
$arr = array(
'/magazines/sample.html',
'/test/index.html',
'/test/format_ss1.html',
'/test/folder/newstyle_1.html',
'/images/two.html'
);
foreach($arr as $str) {
if (preg_match('~^(?!/images/)[a-zA-Z0-9/-]+(?!_ss\d|\d)\.html$~', $str))
echo $str,"\n";
}
输出:
/magazines/sample.html
/test/index.html
感谢响应。但它列出了所有的.html文件.. :( –
@BhanuPrakash:看我的编辑。 – Toto
我已经尝试过,但没有...它也包括图像文件夹太... :(其实我们正在使用这个迁移Drupal7中的东西 –