如何使用regExp在单元格中查找值并将其放入电子表格的下一行?

时间:2018-05-28 20:57:52

标签: javascript regex google-sheets

我有一行包含文本的表。我需要使用regExp从本文中提取值。

我的代码是:

function myfunc(){

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = spreadsheet.getRange('A1:B1000');
  var regExp = /(\?<=Баланс)(.*)(\?=р8)/;

  for (var i = 1; i < 1000; i++) {
    var cell = range.getCell(i,1)
    var cell2 = range.getCell(i,2)    
    var val = regExp.exec(cell.getValue());
    cell2.setValue(val);
  }
}

但它没有做任何事情。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

你需要修复模式:

/Баланс(.*?)р8/

然后,您可以在与regExp.exec(cell.getValue())匹配后访问第1组值,可以通过val[1]访问。

function myfunc(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = spreadsheet.getRange('A1:B1000');
  var regExp = /Баланс(.*?)р8/;

  for (var i = 1; i < 1000; i++) {
    var cell = range.getCell(i,1)
    var cell2 = range.getCell(i,2)    
    var val = regExp.exec(cell.getValue());
    if (val) {
      cell2.setValue(val[1]);
    }
  }
}

请注意,仅使用=REGEXEXTRACT

即可获得所需内容
=REGEXEXTRACT(A13,"Баланс(.*?)р8")

enter image description here