Google 脚本 - 在单元格(电子表格)中获取带有撇号的文本并在 Google 文档的正文中搜索它
Google Script - get a text with an apostrophe in a cell (Spreadsheet) and search for it in a body of Google Doc
我在我的电子表格中做了一个脚本(容器绑定脚本),其中有 4 列:(1) 之前的文本,(2) 之后的文本,(3) 插入的文本,以及 (4) a Google 文档的 URL 以及我想用正确值(之间)替换的文本。
当我有撇号 (') 时,我的方法替换不起作用我没有尝试其他字符 (/," 所以我不知道)。如何解决这个问题?
这是我的代码:
var COLUMN_URL =....
var URL = ...;
// loop for n
Logger.log(' URL ' + URL);
var body = DocumentApp.openByUrl(URL).getBody();
body.replaceText(
sheet.getRange(n + 1, 2).getDisplayValue() + ".*" + sheet.getRange(n + 1, 3).getDisplayValue(),
sheet.getRange(n + 1, 2).getDisplayValue() + sheet.getRange(n + 1, 4).getDisplayValue() +
sheet.getRange(n + 1, 3).getDisplayValue()
);
编辑:当我不使用 撇号、引号、* 和 ? 时,我已经用几个符号进行了测试,我将用其他符号进行测试,但现在! &。和放置在单元格中的数字(之前和之后)正在工作
With \, ( and ) 我收到一条消息 invalid regular expression pattern I love .*McDonald)s
尝试\Q...\E
¹
var textBfr = sheet.getRange(n + 1, 2).getDisplayValue(),
textAr = sheet.getRange(n + 1, 3).getDisplayValue(),
textInsert = sheet.getRange(n + 1, 4).getDisplayValue();
body.replaceText( "\Q"+textBfr+"\E"+ ".*?" +"\Q"+textAr+"\E", textBfr+textInsert+textAr);
我在我的电子表格中做了一个脚本(容器绑定脚本),其中有 4 列:(1) 之前的文本,(2) 之后的文本,(3) 插入的文本,以及 (4) a Google 文档的 URL 以及我想用正确值(之间)替换的文本。
当我有撇号 (') 时,我的方法替换不起作用我没有尝试其他字符 (/," 所以我不知道)。如何解决这个问题?
var COLUMN_URL =....
var URL = ...;
// loop for n
Logger.log(' URL ' + URL);
var body = DocumentApp.openByUrl(URL).getBody();
body.replaceText(
sheet.getRange(n + 1, 2).getDisplayValue() + ".*" + sheet.getRange(n + 1, 3).getDisplayValue(),
sheet.getRange(n + 1, 2).getDisplayValue() + sheet.getRange(n + 1, 4).getDisplayValue() +
sheet.getRange(n + 1, 3).getDisplayValue()
);
编辑:当我不使用 撇号、引号、* 和 ? 时,我已经用几个符号进行了测试,我将用其他符号进行测试,但现在! &。和放置在单元格中的数字(之前和之后)正在工作
With \, ( and ) 我收到一条消息 invalid regular expression pattern I love .*McDonald)s
尝试\Q...\E
¹
var textBfr = sheet.getRange(n + 1, 2).getDisplayValue(),
textAr = sheet.getRange(n + 1, 3).getDisplayValue(),
textInsert = sheet.getRange(n + 1, 4).getDisplayValue();
body.replaceText( "\Q"+textBfr+"\E"+ ".*?" +"\Q"+textAr+"\E", textBfr+textInsert+textAr);