R Shiny 中有一个选项允许通过“regexp”进行搜索。 假设我们有 2 个字符串要搜索:“Merc 230”和“Merc 280”。 工作的“OR”正则表达式是“Merc 230 | Merc 280”。什么将起作用 AND 和 NOT 运算符的正则表达式?
library(DT)
DT::datatable(mtcars, options = list(
search = list(regex = TRUE)))
数据表“搜索”框中的字符串:
1 - 或:Merc 230 | Merc 280 - 工作
2 - 并且:Merc 230 和 Merc 280 - 不起作用
3 - 不是:! Merc 230 和 Merc 280 - 不工作
我不是正则表达式专家,但我有以下示例供您参考。使用
str_detect()
包中的 stringr
进行工作。我不确定它们是否也可以与 DT::datatable
一起使用,但我希望它们可以。
library(stringr)
dummy <- c("Merc 220 Merc 210", "Merc 230 xxx Merc 280", "Merc 220 xxx Merc 280")
pattern1 <- "Merc 230|Merc 280"
str_detect(dummy, pattern1)
pattern2 <- "Merc 230.*Merc 280"
str_detect(dummy, pattern2)
pattern3 <- "^(?!(.*Merc 230.*|.*Merc 280.*))"
str_detect(dummy, pattern3)
模式
.*
代表零个或多个任何类型的字符。 ^(?!.*...)
表示字符串开头,后面不跟零个或多个任何类型的字符以及要排除的表达式。
要了解有关正则表达式的更多信息,我建议阅读Rstudio Cheatsheet on strings。