【问题标题】:How to use regExp to find value in cell and put in next row in spreadsheet?如何使用 regExp 在单元格中查找值并放入电子表格的下一行?
【发布时间】:2025-12-30 11:00:16
【问题描述】:

我有一行包含文本的表格。我需要使用 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);
  }
}

但它什么也没做。可能是什么问题?

【问题讨论】:

  • 正则表达式,使用/Баланс(.*?)р8/ 并抓取val[1]

标签: javascript regex google-sheets


【解决方案1】:

您需要修复模式:

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

然后,您可以通过regExp.exec(cell.getValue()) 匹配后访问Group 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")

【讨论】:

    最近更新 更多