Shiny DT :: datatable的布尔'regexp'是什么?

时间:2019-06-25 18:18:03

标签: r regex shiny datatables boolean

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-AND:Merc 230和Merc 280-不起作用

3-不:! Merc 230和Merc 280-不起作用

谢谢

1 个答案:

答案 0 :(得分:0)

我不是正则表达式专家,但我为您提供以下示例。与str_detect()包中的stringr一起使用。我不确定{@ 1}}是否也可以使用,但我希望它们可以使用。

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