You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含双/单引号的R代码转为文本(Shiny应用场景)

解决R中包含混合引号的代码转文本字符串问题

针对你在Shiny应用里需要把同时包含单双引号的代码转成文本字符串的需求,有两种可靠方法:

方法1:使用R 4.0+的原生raw字符串(推荐)

R 4.0及以上版本支持raw字符串字面量,用r"()"语法(括号可替换为其他成对非空白符号,比如r"[]"),内部可以直接写入带单双引号的内容,无需转义,完美解决混合引号的问题。

示例代码:

library(shiny)

ui <- fluidPage(
  textOutput("display_code")
)

server <- function(input, output) {
  # 用raw字符串定义包含混合引号的目标代码
  mytext <- r"(
  <div class="box" id="test">
    <button onclick='alert("Hello World")'>点击弹窗</button>
  </div>
  )"
  
  output$display_code <- renderText({
    mytext
  })
}

shinyApp(ui, server)

这里r"(...)"包裹的内容里,单引号'和双引号"都能直接保留,不会触发字符串闭合问题。

方法2:手动转义引号

如果你的R版本低于4.0,可以手动用反斜杠转义字符串内的引号:

  • 字符串用双引号包裹时,内部的双引号要写成\"
  • 字符串用单引号包裹时,内部的单引号要写成\'

示例:

mytext <- "
<div class=\"box\" id=\"test\">
  <button onclick='alert(\"Hello World\")'>点击弹窗</button>
</div>
"

这种方法需要逐个转义引号,代码可读性差,不如raw字符串方便。

内容的提问来源于stack exchange,提问作者RL_Pug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:36:17