# 使用grep匹配不同可能性的string

### 6 Solutions collect form web for “使用grep匹配不同可能性的string”

` `x <- c("1100", "0010", "1001", "1111") pattern <- "001|100|000" grep(pattern, x) [1] 1 2 3` `

` `grepl(pattern, x) [1] TRUE TRUE TRUE FALSE` `

` `myValues <- c("001", "100", "000") pattern <- paste(myValues, collapse = "|")` `

` `require(stringr) mylist = c("1100", "0010", "1001", "1111") str_locate(mylist, "000|001|100")` `

` `echo '1100' | grep -e '001' -e '110' -e '101'` `

` `library(data.table) # input x <- c("1100", "0010", "1001", "1111") pattern <- "001|100|000" # check for pattern x %like% pattern > [1] TRUE TRUE TRUE FALSE` `

` `stri_detect_regex(x, pattern) ## [1] TRUE TRUE TRUE FALSE` `

` `require(microbenchmark) test <- stri_paste(stri_rand_strings(100000, 4, "[0-1]")) head(test) ## [1] "0001" "1111" "1101" "1101" "1110" "0110" microbenchmark(stri_detect_regex(test, pattern), grepl(pattern, test)) Unit: milliseconds expr min lq mean median uq max neval stri_detect_regex(test, pattern) 29.67405 30.30656 31.61175 30.93748 33.14948 35.90658 100 grepl(pattern, test) 36.72723 37.71329 40.08595 40.01104 41.57586 48.63421 100` `

` `set.seed(0) samplefun <- function(n, x, collapse){ paste(sample(x, n, replace=TRUE), collapse=collapse) } words <- sapply(rpois(10000000, 8) + 1, samplefun, letters, '') text <- sapply(rpois(1000, 5) + 1, samplefun, words, ' ') #since execution takes a while, I have commented out the following lines #result <- grepl(paste(words, collapse = "|"), text) # Error in grepl(pattern, text) : # invalid regular expression # 'wljtpgjqtnw|twiv|jphmer|mcemahvlsjxr|grehqfgldkgfu| # ... #result <- stringi::stri_detect_regex(text, paste(words, collapse = "|")) # Error in stringi::stri_detect_regex(text, paste(words, collapse = "|")) : # Pattern exceeds limits on size or complexity. (U_REGEX_PATTERN_TOO_BIG)` `
• 如何使用source（'myfile.r'）来源化R Markdown文件？
• 安装SparkR
• 如何获取目录中的目录列表，如list.files（），而是“list.dirs（）”
• 如何删除ggplot2中的图例标题？
• data.table连接然后添加列到现有data.frame没有重新复制
• 如何为列中的每组相同值分配唯一的ID号
• select/分配给data.tablevariables名称存储在一个字符向量中
• 如何在ggplot中独立定位两个图例
• 在R中实现标准的软件devise模式（专注于MVC）
• 在R中的同一图中绘制两个图
• 在R中search受密码保护的网站