php – PCRE来过滤扩展名上的文件

我需要一个PCRE(Perl兼容正则表达式),它将匹配文件列表中的所有非图像(jpg,png,tiff).所以我需要一些代替XXX的东西

# Perl
while(<>){
chomp;
if(/XXX/){
// non-image
}
}

// PHP
foreach($files as $file){    
if(preg_match('/XXX/',$file){
// non-image
}
}

我知道可以使用如下的否定来完成,但我一直在寻找一些不使用否定的东西.

if(!/\.jpg$/)
{
}

如果可能,请提供有关正则表达式如何工作的简要说明

提前致谢

解决方法:

这是一个使用负向lookbehind的解决方案(?<!...):

/(?<!\.png|\.jpg|\.tiff)$/

它匹配字符串的结尾,但前提是它前面没有.png,.jpg或.tiff.

这是一个只使用固定宽度外观的Perl友好版本:

/(?<!\.png)(?<!\.jpg)(?<!\.tiff)$/

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...