我一直在尝试更换Google脚本中的某些文字,但它并没有产生我想要的内容。目前我正在使用Cameron Roberts的剧本 - How do I replace text in a spreadsheet with Google Apps Script?来替换我,但是我没有把它完全正确。
使用该代码我试图将'values'替换为'1'。值'然而,如果我多次运行代码,它会产生'1。 1.值'等因为它只找到'values'字符串。我想要的是一个通配符,它只搜索' values '然后放'1。值'但我似乎无法很好地掌握正则表达式语法来修复它。
function testReplaceInSheet(){
var sheet = SpreadsheetApp.getActiveSheet()
replaceInSheet(sheet,'values','1. values');
}
function replaceInSheet(sheet, to_replace, replace_with) {
//get the current data range values as an array
var values = sheet.getDataRange().getValues();
//loop over the rows in the array
for(var row in values){
//use Array.map to execute a replace call on each of the cells in the row.
var replaced_values = values[row].map(function(original_value){
return original_value.toString().replace(to_replace,replace_with);
});
//replace the original row values with the replaced values
values[row] = replaced_values;
}
//write the updated values to the sheet
sheet.getDataRange().setValues(values);
}
答案 0 :(得分:0)
如果您可以接受格式的微小更改,那么您可以将其中一个'值大写,例如:
replaceInSheet(sheet,'values','1. Values');
答案 1 :(得分:0)
如果前缀不存在,则会添加前缀。 模拟消极背后的负面看法
function addPrefix(s, find, prefix) {
function reverse(x) {return x.split("").reverse().join("");}
var sr = reverse(s);
var findr = reverse(find);
var prefixr = reverse(prefix);
var findRegexpr = new RegExp(findr + "(?!" + prefixr + ")");
return reverse(sr.replace(findRegexpr, findr + prefixr))
}