r - 基于R中的列表突出显示文本闪亮
问题描述
我想根据 R 闪亮中的列表突出显示/着色字符串的一部分。我有以下代码:
library(shiny)
ui <- fluidPage(
mainPanel(
fluidRow(
box(title="text",status="primary", solidHeader = TRUE, align = "left", width = 4,
verbatimTextOutput("text"))))
)
server <- function(input, output) {
output$text <- renderText({
print("ABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRS")
})
}
shinyApp(ui = ui, server = server)
如何使用列表对字符串的部分进行着色/突出显示:
highlight <- c("GHIJ", "MNOP", "STUV")
列表会根据用户输入而改变。
编辑:我能够使用以下代码突出显示字符串的特定部分:
library(shiny)
library(magrittr)
library(tableHTML)
ui <- fluidPage(
mainPanel(
fluidRow(
box(title="Sequence",status="primary", solidHeader = TRUE, align = "left", width = 6,
htmlOutput("text")),
tags$style(type="text/css", "#text {word-break: break-all;}")))
)
server <- function(input, output) {
output$text <- renderText({
text2 <- c("ABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRS")
text2 %<>% stringr::str_replace_all(c('MNOPQR' = '<span style="background-color:yellow">MNOPQR</span>'))
print(text2)
})
}
我有一个很大的字符串列表,我想根据用户输入突出显示这些更改。我想将 str_replace_all 函数包装到一个循环中,以查找列表中的所有字符串。
像这样的东西:
words <- c("ABCD", "MNOP", "GHIJ")
for (word in words){
text2 %<>% stringr::str_replace_all(c('word' = '<span style="background-color:yellow">word</span>'))
}
但我没有让它工作。
解决方案
如我所见,这里有几个步骤。首先是使用 grep 找到需要高亮的字符串,然后拆分原始字符串,最后应用一个 html 标签,例如
tags$span(style="color:red", x)
为红色。
推荐阅读
- html - Bootstrap:全宽背景
- c++ - constexp 函数中的 C++ Wconversion 警告,但模板中没有
- python - Python:格式化控制台输入
- batch-file - 计算某些字符的数量
- angular - “typeof ActivatedRoute”类型上不存在属性“快照”
- java - 如何将此递归深度优先搜索转换为深度受限搜索?
- json - ImportError:无法导入名称“maketrans”
- python - 熊猫将函数应用于每列的第二行
- pandas - 每个示例使用多个类别编码分类特征 - sklearn
- react-native - 设备上的 React Native 导致“未处理的 JS 异常:new.target”