正则表达式在同一行上有多个匹配项

时间:2012-05-09 12:47:39

标签: javascript regex

我有以下JavaScript Regex

http://regexpal.com/

中使用

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

用于jQuery代码 -

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

这是我正在使用的示例数据

  
      
  1. [CID:image001.jpg@01CD2DC8.704399C0]
  2.   
  3. S [CID:image001.png@01CD2DC8.704399C0] LT;
  4.   
  5. image.jpg的
  6.   
  7. [CID:image002.jpg@01CD2DC8.704399C0]
  8.   
  9. [CID:image002.exe@01CD2DC8.704399C0]
  10.   
  11. [CID:image002.gif@01CD2DC8.704399C0]
  12.   
  13. [[cid:image001.jpg@01CD2DE6.9802A2D0]
    再次[cid:image002.png@01CD2DE6.9802A2D0]]
  14.   
  15. test.gif
  16.   

我的问题是,在第7行,我希望[]中包含的两个字符串是分开的,此时它将整行视为匹配,

1 个答案:

答案 0 :(得分:11)

您需要修改正则表达式以更改贪婪(请注意.*?):

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