正则表达式破折号或点[关闭]

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])

REGEX101