将字符串中的“%”替换为“\%”

Replace "%" with "\%" in string

我需要制作一个适合在 LaTeX 中使用的字符向量,因此我需要用一个反斜杠转义所有百分号。到目前为止,我所能做的就是得到 两个 反斜杠:

> text <- c("This is 60%", "This is 30%")
> gsub("%", "\%", text, fixed=TRUE)
[1] "This is 60\%" "This is 30\%"
> gsub("%", "\\%", text, fixed=TRUE)
[1] "This is 60\\%" "This is 30\\%"

正如预期的那样,如果 fixed=FALSE 使用 "\%" 作为替代我没有得到反斜杠,或者使用 `"\\%"' 作为替代得到两个反斜杠。我怎样才能得到“这是 60\%”的结果?

事实上,第一个版本已经可以运行了:

text <- c("This is 60%", "This is 30%")
gsub("%", "\%", text, fixed=TRUE)
[1] "This is 60\%" "This is 30\%"

当您在打印的字符串中看到 \% 时,第一个反斜杠只是第二个反斜杠的转义字符,即文字。您的输出字符串实际上是这样的:

This is 60\%