在 R 中将 `&` 替换为 `\&`

rtr*_*trt -1 string replace r stringr

我想用&in\&替换R&D

我该怎么做?

stringr::str_replace("R&D","&","\\&")仍然给出R&D而不是R\&D,我不知道为什么。

Kon*_*lph 5

\&的替换值有特殊含义str_replace(指的是匹配的文本)。为了避免这种特殊含义,请将反斜杠也加倍以转义它们。

因此,以下方法有效:

stringr::str_replace("R&D", "&", "\\\\&")
Run Code Online (Sandbox Code Playgroud)

  • @robertspierre 是的,这是正确的:它显示*字符串文字值*,包括周围的引号和反斜杠作为转义。这就是 R 中*每个*字符串的显示方式。使用 writeLines() 或 cat() 可以正确显示它。 (2认同)