首先,我要为这个不完全是 GAS 相关问题的问题道歉,尽管在我看来,这显然是 Google Apps 脚本上下文中的“编程”问题。
在最近一篇关于 Google Docs 中字符串替换的文章中,我发现了一种非常可靠的方法来使用该find()
方法替换字符串并在 textElements 中删除/附加字符串。正如我在这篇文章中提到的,该方法非常有效,不受特殊字符的干扰,并且(非常)易于实现。
因此,我很高兴并花了一些时间来处理各种名称和地址,并且在某个时候,我发现了一个条目,该条目使搜索/替换过程崩溃并弄乱了我的文档。我花了一些时间来找出起源,但我终于明白了:
一个例子:有人叫约翰住在一条叫约翰肯尼迪街的街道上,当我在寻找(并用#marker#替换)约翰肯尼迪街之前寻找约翰时, 我死了!(说话的方式)因为它将 - 根据序列顺序 - 插入John(实际上它将用对应于 John 的字段标记替换 John)代替对应于John Kennedy 街的那个......然后它将再也找不到约翰肯尼迪街(地址字段类似于#marker# Kennedy street !!!
所以问题是:
- 知道我确切知道将使用的所有字段
- 知道该
find()
工具始终以相同的方式在文档中以相同的方向迭代 - 知道我有一个地方可以记住任何有用的参数以及字段名及其替换值
- 考虑到这个过程可以被逻辑地描述(我尽力了)并且我可以使用任何特定于 Gas 的方法或 javascript 方法......
知道所有这些,我该如何处理这种情况以防止出现此错误?
我一直在想它,但我没有找到任何好主意......
你会如何处理这个问题?
我最好的猜测是,我可以尝试使用 Google 文档的树结构来记住文档中每个项目的位置,并将其用作补充条件)但是因为这会非常复杂(其中可能有很多不同的项目doc:表格,段落,列表...)我宁愿提前在这里问,因为如果有更简单的事情我没有想到,我会讨厌白白工作。
(感谢阅读这篇长文。)