正则表达式匹配3个数字后的数字

时间:2015-09-16 21:02:20

标签: javascript regex

我使这个正则表达式匹配3个数字后面的数字:

callback: function(data, width, height) {

我希望捕获最后的56.367,41,但正在返回:

var text = 'RAT 56.367,41 0,00 0,00 0,00 56.367,41';
var reg  = /RAT\s(?:\d\S*\s+){4}(\d\S*)/g;

var match = text.match(reg);
console.log(match[0]);

我怎样才能改善这一点以达到我的需要?

另外,我无法真正改变明确的RAT名称,因为这个小块只是大文本的一部分。

感谢。

2 个答案:

答案 0 :(得分:3)

您使用的是错误的方法。如果要检索该值,请尝试使用exec。这是完整的代码:

var text = 'RAT 56.367,41 0,00 0,00 0,00 56.367,41';
var reg  = /RAT\s(?:\d\S*\s+){4}(\d\S*)/g;
var match = reg.exec(text);
console.log(match[1]);

答案 1 :(得分:0)

您可以在while循环中抓取第一个捕获组:

var re = /RAT\s(?:\d\S*\s+){4}(\d\S*)/g; 
var str = 'RAT 56.367,41 0,00 0,00 0,00 56.367,41';
var m;

while ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex)
        re.lastIndex++;
    console.log(m[1]);
}

//=> 56.367,41

RegEx Demo