谷歌应用程序脚本中的正则表达式将数组内的每个单词括在引号内

时间:2017-10-04 05:17:03

标签: regex replace google-apps-script

例如,我想将以下数组中的每个单词括在引号内。

  

{seguridad = 0,funcionalidad = 1,instalaciones = si,observaciones = si,   areas = Pasillos,limpieza = no,pintura = tal vez}

分为:

  

{“seguridad”=“0”,“funcionalidad”=“1”,“instalaciones”=“si”,   “observaciones”=“si”,“areas”=“Pasillos”,“limpieza”=“no”,   “pintura”=“tal vez”}

到目前为止,这是我不成功的剧本。

function Enclose() {

  var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("1iXQxyL3URe1X1FgbZ76mEFAxLnxegyDzXOMF6WQ5Yqs"));
  var sheet = doc.getSheetByName("json");
  var sheet2 = doc.getSheetByName("tabla de frecuencias");

  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var prelast = sheet.getRange("A1:A").getValues();
  var last = prelast.filter(String).length;


  var json = sheet2.getRange("B11").getValues();

  var regExp = new RegExp("/[\w]+", "g");

  /* var match = json.replace(regExp,""); */

  var match = regExp.exec(match);

  sheet2.getRange("C11").setValue("\"" + match + "\"");

  }

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

首先你包装所有,然后= =引用""使用以下正则表达式:

/(\s*[,=]\s*)/

然后使用以下两个正则表达式单独更换开口括号:

/(\s*{)/gm

/(\s*})/gm



const str = `{seguridad=0, funcionalidad=1, instalaciones=si, observaciones=si, areas=Pasillos, limpieza=no, pintura=tal vez}`;

var result = str.replace(/(\s*[,=]\s*)/gm,`"$1"`);
result=result.replace(/(\s*{)/gm,`$1"`);
result=result.replace(/(\s*})/gm,`"$1`);


console.log(result);




答案 1 :(得分:1)

这个样本怎么样?

示例脚本:

var json = "{seguridad=0, funcionalidad=1, instalaciones=si, observaciones=si, areas=Pasillos, limpieza=no, pintura=tal vez}";
var res = json.replace(/(\d+|[a-zA-Z]+)=(\d+|[a-zA-Z\s]+)/g, "\"$1\"=\"$2\"");
Logger.log(res)

结果:



var json = "{seguridad=0, funcionalidad=1, instalaciones=si, observaciones=si, areas=Pasillos, limpieza=no, pintura=tal vez}";
var res = json.replace(/(\d+|[a-zA-Z]+)=(\d+|[a-zA-Z\s]+)/g, "\"$1\"=\"$2\"");
console.log(res)




当这反映在您的脚本中时,修改后的脚本如下所示。

修改后的脚本:

function Enclose() {

  var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("1iXQxyL3URe1X1FgbZ76mEFAxLnxegyDzXOMF6WQ5Yqs"));
  var sheet = doc.getSheetByName("json");
  var sheet2 = doc.getSheetByName("tabla de frecuencias");

  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var prelast = sheet.getRange("A1:A").getValues();
  var last = prelast.filter(String).length;


  var json = sheet2.getRange("B11").getValue();

//  var regExp = new RegExp("/[\w]+", "g");

//  /* var match = json.replace(regExp,""); */

//  var match = regExp.exec(match);

  match = json.replace(/(\d+|[a-zA-Z]+)=(\d+|[a-zA-Z\s]+)/g, "\"$1\"=\"$2\"");
  sheet2.getRange("C11").setValue("\"" + match + "\"");
}