簡體   English   中英

Google App腳本中的正則表達式將每個單詞括在引號內的數組中

[英]Regex in Google App Script to enclose each word inside an Array inside quotes

例如,我想將每個單詞括在引號內的以下數組中。

{seguridad = 0,funcionalidad = 1,instalaciones = si,observaciones = si,area = 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 + "\"");

  }

您可以嘗試以下方法:

首先,使用以下正則表達式包裝all和=並用引號“”引起來:

/(\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); 

這個樣品怎么樣?

示例腳本:

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 + "\"");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM