[英]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.