使用replaceText特殊字符的问题:[](problems using replaceText

2019-09-18 00:36发布

我想,以取代“\ {引用} foo123a”与“[1]”和倒退。 到目前为止,我可以用下面的命令来替换文本

body.replaceText('.cite{foo}', '[1]');

但我没使用

body.replaceText('\cite{foo}', '[1]');
body.replaceText('\\cite{foo}', '[1]');

为什么?

背面转换我不能在所有的工作

body.replaceText('[1]', '\\cite{foo}');

这只会替换“1”,而不是[],这意味着被解释[]为正则表达式的字符集,逃避他们不会帮助

body.replaceText('\[1\]', '\\cite{foo}');//no effect, still a char set
body.replaceText('/\[1\]/', '\\cite{foo}');//no matches

文档状态

的JavaScript正则表达式功能的一部分不完全支持,如捕获组和模式修饰符。

我能找到的是什么支持的完整说明并没有什么地方?

Answer 1:

我不熟悉与谷歌Apps脚本,但这个貌似普通的正则表达式的麻烦。

你的第二个转换是不工作,因为字符串文字'\[1\]'是一样的为'[1]' 。 你想引用的文字\[1\]作为一个字符串,这意味着'\\[1\\]' 。 字符串里斜线文字有没有相关的意义; 在这种情况下,你已经写入了匹配的文本模式/1/

你的第一个转换是不工作,因为{...}表示量词,不是字面括号,所以你需要\\\\cite\\{foo\\} (四个反斜线是因为要匹配文字\在正则表达式\\ ,并作出一个字符串字面是\\\\ -两个逃跑反斜杠)



文章来源: problems using replaceText for special characters: [ ]