你们中的一些人可能熟悉Google Analytics中的内容分组,它基本上允许您将任意数量的URL分组到用户指定的组中(这对于分析所有同时存在的页面非常有用) . 我正在编写一个脚本,将其提升到一个新的水平,并在Google表格中使用它 .
目标:有一个工作脚本重写URL并为其提供另一个名称,无论它是否在URL中使用大写或小写 .
到目前为止我有这个:
function onOpen() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("a1:a10000");
var to_replace = /.*example.*/;
var replace_with = "TEST";
var to_replace2 = /.*another-example.*/;
var replace_with2 = "TEST-Nr2";
replaceInSheet(sheet,range, to_replace, replace_with);
replaceInSheet(sheet,range, to_replace2, replace_with2);
}
这个脚本的工作原理是它将URL中的'Example'重写为'Test',并将'Another-example'重写为TEST-Nr2 .
但是,最终脚本可能会有数千个需要重写的URL . 此外,一些URL在其中有大写,我想忽略并重写 .
以上所有问题都让我有两个问题:
-
如何以这种方式编写脚本(例如使用正则表达式?),我将不会拥有Toplex的Googleplex数和replace_with的?
-
如何使我的to_replace变量不区分大小写?
如果需要更多关于此事的信息,我很乐意提供 .
亲切的问候,
JNeu
1 回答
不知怎的,你知道模式和替换值,是吗?您需要将这些知识传授给您的脚本 .
最简单的方法是从电子表格中读取它,例如在某些工作簿中的某个工作表上,您有1列有该模式,另一列有替换 . 然后,您只需在(Range#getValues())中读取该数据,然后迭代该数组以处理您的数据范围 . 请注意,您在工作表中存储的模式不应包含文字构造函数斜杠,即您在单元格中需要
\d{1,3}
而不是/\d{1,3}/
.例:
补充阅读:
RegExp
Array#forEach