用LaTex的双反斜杠替换umlaute

时间:2016-12-13 13:45:09

标签: r regex gsub

我想用ä, ü, ...替换德语变音\\"a, \\"u, ...

示例:

字符串Ägypten应转换为\\"Agypten。 但gsub不允许我:

gsub('Ä','\\"A','Ägypten')
> [1] "\"Agypten"
gsub('Ä','\\\"A','Ägypten')
> [1] "\"Agypten"
gsub('Ä','\\\\"A','Ägypten')
> [1] "\\\"Agypten"

顺便说一句:我需要knitr, tikZ, and Xetex。不幸的是,UTF8解决方案对我来说不可行。

1 个答案:

答案 0 :(得分:1)

你可以在这里使用文字字符串替换,记住在文字字符串替换中,你需要2 \来表示一个字面反斜杠:

> s <- gsub('Ä','\\\\"A','Ägypten', fixed=TRUE)
> cat(s)
\\"Agypten> 

如果使用正则表达式替换,则需要在替换模式字符串文字中使用4个反斜杠(即2个字面反斜杠)替换为1个字面反斜杠。