I need to match a part of filename on image files. i have 2 type of its :
img000-size.jpg img000.jpg
How can i only match img000 ?
PS : Can i get php code with preg_match please? Thanks
Okay, let me help you...
regex: /(\w+)(?:-\w+)?\.jpg/i
data: 477547755-large.jpg
match: 477547755
I match a word character between 1 and unlimited times, than optionally a minus with again a word character and then the extension. notice: you have to escape the dot at the extension cause it will be interpreted as 'any char'
description:
1st Capturing group (\w+)
\w+ match any word character [a-zA-Z0-9_]
Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
(?:-\w+)? Non-capturing group
Quantifier: ? Between zero and one time, as many times as possible, giving back as needed [greedy]
- matches the character - literally
\w+ match any word character [a-zA-Z0-9_]
Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
\. matches the character . literally
jpg matches the characters jpg literally (case insensitive)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])