我里面有一个巨大的字符串:

linha[0] = '12/2010    281R$          272.139,05                            ';
linha[0] = '13SL         1R$          226.185,81                            ';


这两行是分开的,我需要从这两行中获得最后一次出现。我正在使用以下正则表达式来匹配第一个:

/linha\[0]\s=\s'(.*)';/


我也想获得第二个“ linha ...”,但我不知道具体如何。

这就是我使用此正则表达式获取第一个“ linha ...”的方式:

string.match(/linha\[0]\s=\s'(.*)';/);


输出:

linha[0] = '12/2010    281R$          272.139,05                            ';


另外,我不能做额外的工作,我只需要使用正则表达式就可以得到第二次出现。

最佳答案

如果要在字符串中获取正则表达式的最后一次出现(并假设它存在),则可以执行

var str = hugeString.match(/linha\[0]\s=\s'([^']*)';/g).pop();


(是的,为了更好的效率,我将.*更改为[^']*,如果您的内部字符串中带有引号,则忽略它)

现在,如果您只想提取子匹配项,则可以

var regex = /linha\[0]\s=\s'([^']*)';/g,
    arr,
    str;
while (arr = regex.exec(hugeString)) str = arr[1];

09-26 01:41