Phill Duffy
Phill Duffy

Reputation: 2866

Regex multiple matches on same line

I have the following JavaScript Regex

As used in http://regexpal.com/

\[.*(\.jpg|\.png|\.gif|\.bmp|\.jpeg).*\]

As use in jQuery code -

post.html().match(/\[.*(\.jpg|\.png|\.gif|\.bmp|\.jpeg).*\]/g);

This is the sample data I am working with

  1. [cid:[email protected]]
  2. s[cid:[email protected]]<
  3. image.jpg
  4. [cid:[email protected]]
  5. [cid:[email protected]]
  6. [cid:[email protected]]
  7. [[cid:[email protected]]
    And again
    [cid:[email protected]]]
  8. test.gif

My issue is that on line 7, I would like the two strings enclosed in the [] to be separate, at the moment it is treating the whole line as a match,

Upvotes: 12

Views: 17005

Answers (1)

KARASZI Istv&#225;n
KARASZI Istv&#225;n

Reputation: 31477

You need to modify your regexp to change the greediness (note the .*?):

\[.*?(\.jpg|\.png|\.gif|\.bmp|\.jpeg).*?\]

Upvotes: 20

Related Questions