我需要一个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)$/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。