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

如何用正则表达式为Shiny DataTable指定字符串添加粗体格式

在Shiny的DT表格中用正则表达式将特定字符串设为粗体

要实现将指定字符串设为粗体的需求,你可以通过正则表达式替换目标内容为HTML粗体标签,并让DT表格支持渲染HTML,具体实现如下:

  1. 正则替换目标字符串:使用gsub()函数,通过\\bH2\\b这个正则表达式精准匹配独立的"H2"字符串,将其替换为<b>H2</b>。这里的\\b是单词边界,能避免误匹配包含"H2"的其他字符串(比如"H20"或"AH2")。
  2. 启用DT的HTML渲染:在datatable()中设置escape = FALSE,确保表格会解析HTML标签,而不是将其作为普通文本输出。

完整代码示例:

library(shiny)
library(DT)

data <- data.frame(V1 = 1:3, V2 = c("H1, H2, H3", "H5, H2, H6", "H4, H3, H5"))

# 用正则替换H2为粗体HTML标签
data$V2 <- gsub("\\bH2\\b", "<b>H2</b>", data$V2)

ui <- fluidPage(
  "已将'H2'设为粗体",
  DTOutput("table", width = 500)
)

server <- function(input, output, session) {
  
  output$table <- renderDT(
    datatable(data, escape = FALSE) # 关闭转义,允许渲染HTML
  )
  
}

shinyApp(ui, server)

关键细节:

  • 如果需要匹配其他模式,只需修改gsub()中的正则表达式即可。比如要匹配所有以"H"开头后跟数字的字符串,可以用\\bH\\d+\\b作为匹配规则。
  • 必须设置escape = FALSE,否则DT会把<b>标签原样显示,无法渲染出粗体效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:20:47