sel*_*ect 1 google-docs google-apps-script
我想用“[1]”和向后替换“\cite{foo123a}”。到目前为止,我能够用以下命令替换文本
body.replaceText('.cite{foo}', '[1]');
Run Code Online (Sandbox Code Playgroud)
但我没有设法使用
body.replaceText('\cite{foo}', '[1]');
body.replaceText('\\cite{foo}', '[1]');
Run Code Online (Sandbox Code Playgroud)
为什么?
我根本无法工作的反向转换
body.replaceText('[1]', '\\cite{foo}');
Run Code Online (Sandbox Code Playgroud)
这将仅替换“1”而不是 [],这意味着 [] 被解释为正则表达式字符集,转义它们无济于事
body.replaceText('\[1\]', '\\cite{foo}');//no effect, still a char set
body.replaceText('/\[1\]/', '\\cite{foo}');//no matches
Run Code Online (Sandbox Code Playgroud)
该文件指出
不完全支持 JavaScript 正则表达式功能的子集,例如捕获组和模式修饰符。
我可以找到支持哪些内容以及不支持哪些内容的完整说明吗?
我不熟悉 Google Apps Script,但这看起来像普通的正则表达式问题。
您的第二次转换不起作用,因为字符串文字'\[1\]'与'[1]'. 您想将文本引用\[1\]为字符串文字,这意味着'\\[1\\]'. 字符串文字中的斜杠没有相关含义;在这种情况下,您已经编写了一个与文本匹配的模式/1/。
您的第一次转换不起作用,因为{...}表示一个量词,而不是文字大括号,所以您需要\\\\cite\\{foo\\}. (四个反斜杠是因为要匹配\正则表达式中的字面量 is \\,并使其成为字符串字面量\\\\- 两个转义的反斜线。)
| 归档时间: |
|
| 查看次数: |
2197 次 |
| 最近记录: |