Javascript 使用正则表达式获取最后一次出现
我有一根巨大的绳子,里面有这个:Javascript 使用正则表达式获取最后一次出现,javascript,regex,Javascript,Regex,我有一根巨大的绳子,里面有这个: linha[0] = '12/2010 281R$ 272.139,05 '; linha[0] = '13SL 1R$ 226.185,81 '; 这两行是分开的,我需要从这两行中获取最后一个匹配项。我使用以下正则表达式来匹配第一个正则表达式: /linha\[0]\s=\s'(.*)';/
linha[0] = '12/2010 281R$ 272.139,05 ';
linha[0] = '13SL 1R$ 226.185,81 ';
这两行是分开的,我需要从这两行中获取最后一个匹配项。我使用以下正则表达式来匹配第一个正则表达式:
/linha\[0]\s=\s'(.*)';/
我也想得到第二个“linha…”,但我不知道具体怎么做
这就是我如何使用这个正则表达式来获得第一个“linha…”:
输出:
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];
(是的,我将*
更改为[^']*
,为了提高效率,如果您的内部字符串中有引号,请忽略这一点)
现在,如果您只想提取子匹配,您可以这样做
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];
为什么不
hugeString.match(/linha\[0]\s=\s'([^']*)”;/g.pop()
?请注意,如果您需要提取子模板,则必须使用请指定问题,但理解起来并不明确。那么,预期的输出是什么?第二个输出是什么意思?对不起,问题不清楚。请稍等。不可能只使用正则表达式而不进行额外的工作来匹配第二个吗?@FátimaAlves您可以使用$
锚定(假设它位于字符串末尾)<代码>linha\[0]\s=\s'(.*)$代码>-