regex 使用正则表达式提取多个参数

fdbelqdn  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(132)

我试图定义一个新的谷歌表格公式使用谷歌脚本(其中有JavaScript语法,如果我理解得很好)。
那么根据我的公式

=MYFORMULA(A1;A2;A3;A4;A5;A6;B7)

我找到了如何提取所有参数using this answer

function myFormula(arguments)
{
  var activeRange = SpreadsheetApp.getActiveRange();
  //var activeSheet = activeRange.getSheet();
  var formula = activeRange.getFormula();

  var extr = formula.match(/\(([^()]+)\)/).pop();
  return extr;
}

--> extr = "A1;A2;A3;A4;A5;A6;B7"

我想提取所有参数的列表(假设“;“作为分隔符),并最终丢弃最后一个,得到类似

extr = ["A1", "A2", "A3", "A4", "A5", "A6"];

我该如何使用正则表达式?单个正则表达式还是迭代?(项目数量可变)

ev7lccsx

ev7lccsx1#

我写这个答案作为一个社区维基,因为答案是从评论部分,为了提供一个适当的回答这个问题。
正如@Hao Wu所提到的,return语句可以包含一个操作,该操作将拆分值以获得所需的输出:

function myFormula(arguments)
{
...

  var extr = formula.match(/\(([^()]+)\)/).pop();
  return extr.split(',').slice(0, -1);
}

相关问题