我使这个正则表达式匹配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名称,因为这个小块只是大文本的一部分。
感谢。
答案 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