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:image001.jpg@01CD2DC8.704399C0]
  2. s[cid:image001.png@01CD2DC8.704399C0]<
  3. image.jpg
  4. [cid:image002.jpg@01CD2DC8.704399C0]
  5. [cid:image002.exe@01CD2DC8.704399C0]
  6. [cid:image002.gif@01CD2DC8.704399C0]
  7. [[cid:image001.jpg@01CD2DE6.9802A2D0]
    And again
    [cid:image002.png@01CD2DE6.9802A2D0]]
  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: 17008

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