Hello,
I'm pretty new to PHP and am wrestling with regexp's right now. I am
trying to figure something out with no luck. Hopefully someone can
help.
I am trying to filter out file names. I want to write a regexp that
matches all image file names, such as ".jpg", ".bmp", ".png", etc...
but not file names that end with "_thumb.*** " (where *** is the
extension of the file name... which can be 3 or 4 chars long). So...
somepic.jpg <--- should match
somepic_thumb.j pg <--- should not match
anotherpic.png <--- should match
this_thumb.is_b roken.jpg <--- should match
Currently, I do this using two regexps. First, I compare to determine
if the file is an image by looking at the end and seeing if it's .jpg,
..png, etc. If that passes, I compare again to see if it contains
"_thumb.*** " at the end (allowing for 3 or 4 chars, such as jpg or
jpeg), as such:
if(preg_match("/(.jpg|.jpeg|.gi f|.png|.bmp)$/i", $filename)){
if(!preg_match( "/(_thumb.).{3,4} $/i", $filename)){
$files[]=$filename;
print("$filenam e<br>");
}
}
How can I, if possible, combine these into one regexp?
Thanks for your time,
Mr Phuzz
I'm pretty new to PHP and am wrestling with regexp's right now. I am
trying to figure something out with no luck. Hopefully someone can
help.
I am trying to filter out file names. I want to write a regexp that
matches all image file names, such as ".jpg", ".bmp", ".png", etc...
but not file names that end with "_thumb.*** " (where *** is the
extension of the file name... which can be 3 or 4 chars long). So...
somepic.jpg <--- should match
somepic_thumb.j pg <--- should not match
anotherpic.png <--- should match
this_thumb.is_b roken.jpg <--- should match
Currently, I do this using two regexps. First, I compare to determine
if the file is an image by looking at the end and seeing if it's .jpg,
..png, etc. If that passes, I compare again to see if it contains
"_thumb.*** " at the end (allowing for 3 or 4 chars, such as jpg or
jpeg), as such:
if(preg_match("/(.jpg|.jpeg|.gi f|.png|.bmp)$/i", $filename)){
if(!preg_match( "/(_thumb.).{3,4} $/i", $filename)){
$files[]=$filename;
print("$filenam e<br>");
}
}
How can I, if possible, combine these into one regexp?
Thanks for your time,
Mr Phuzz
Comment