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-不起作用
谢谢
答案 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。