有更有效的方法吗?如果没有字符串,我怎么能这样做?
- txt <- "I want to extract the words between this and that,this goes with that,this is a long way from that"
- library(stringr)
- w_start <- "this"
- w_end <- "that"
- pattern <- paste0(w_start,"(.*?)",w_end)
- wordsbetween <- unlist(str_extract_all(txt,pattern))
- gsub("^\\s+|\\s+$","",str_sub(wordsbetween,nchar(w_start)+1,-nchar(w_end)-1))
- [1] "and" "goes with" "is a long way from"
这是我在qdap中使用的方法:
使用qdap:
- library(qdap)
- genXtract(txt,"this","that")
- ## > genXtract(txt,"that")
- ## this : that1 this : that2 this : that3
- ## " and " " goes with " " is a long way from "
没有添加包:
- regmatches(txt,gregexpr("(?<=this).*?(?=that)",txt,perl=TRUE))
- ## > regmatches(txt,perl=TRUE))
- ## [[1]]
- ## [1] " and " " goes with " " is a long way from "