为什么这个javascript字符串匹配调用只返回一个结果?

fuz*_*log 0 javascript regex match

下面的代码应该返回5个匹配,但它只返回一个.

    var str = '"<div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="green" data-offcolor="maroon" data-paramname="rxAntMER" data-index="9" data-blockindex="0"></div>
<div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="green" data-offcolor="maroon" data-paramname="rxAntMER" data-index="8" data-blockindex="0"></div><div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="green" data-offcolor="maroon" data-paramname="rxAntMER" data-index="7" data-blockindex="0"></div>
<div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="green" data-offcolor="maroon" data-paramname="rxAntMER" data-index="6" data-blockindex="0"></div><div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="yellow" data-offcolor="maroon" data-paramname="rxAntMER" data-index="5" data-blockindex="0"></div>
<div id="rxAntMER" class="LEDPill" data-hookableby="globalid" data-oncolor="yellow" data-offcolor="maroon"';
       var results  = str.match(/id="rxAntMER".+data-blockindex="0"/g);
       alert("Number of matches = " + results.length);
Run Code Online (Sandbox Code Playgroud)

正则表达式试图完成以下任务:

  1. 匹配文字'id ="rxAntMER"'

  2. 跟随1或多个'任何字符'

  3. 直到匹配文字'data-blockindex ="0"'

提供的文本中有5个这样的匹配.我已经尝试过使用RegEx(...)和string.Match(...)的示例,教程和许多排列,但我无法得到我正在寻找的结果.

关于我做错了什么的任何建议或想法?

ick*_*fay 5

+很贪心.作为一个简化示例,假设您想要找到有多少个角括号对<1><2>.您使用正则表达式进行搜索<.+>,期望它与两者匹配.但是等等,.+比赛1><2,所以你有一场比赛.

你需要+减少贪心.通过跟随它来做到这一点?,所以你有.+?.