加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

R:如何向外搜索向量中的正则表达式?

发布时间:2020-12-14 06:25:43 所属栏目:百科 来源:网络整理
导读:在R中是否可以在向量中搜索正则表达式,就好像所有元素都是折叠的单个元素一样?如果我们将所有元素折叠成一个来做这个,那么在搜索之后就不可能将它们放回到它们的元素形式. 这是一个向量. vector-c("I","met","a","cow") 现在,搜索词是“meta”(元素2和3折叠
在R中是否可以在向量中搜索正则表达式,就好像所有元素都是折叠的单个元素一样?如果我们将所有元素折叠成一个来做这个,那么在搜索之后就不可能将它们放回到它们的元素形式.

这是一个向量.

vector<-c("I","met","a","cow")

现在,搜索词是“meta”(元素2和3折叠).

假设我的任务是合并搜索字符串所在的两个元素.

所以我期待的是:

vector = "I","meta","cow"

是否有可能做到这一点?请帮忙.

如果你想要一些匹配“meta”而不是“taco”的东西,这就可以了:
myFun <- function(vector,word) {
    D <- "UnLiKeLyStRiNg" 

    ## Construct a string on which you'll perform regex-search
    xx <- paste0(paste0(D,vector,collapse=""),D)

    ## Construct the regex pattern
    start <- paste0("(?<=",D,")")
    mid <- paste0(strsplit(word,"")[[1]],collapse=paste0("(",")?"))
    end <- paste0("(?=",")")
    pat <- paste0(start,mid,end)

    ## Use it
    strsplit(gsub(pat,word,xx,perl=TRUE),D)[[1]][-1]
}

vector <- c("I","cow")

myFun(vector,"meta")
# [1] "I"    "meta" "cow" 
myFun(vector,"taco")
# [1] "I"   "met" "a"   "cow"
myFun(vector,"Imet")
# [1] "Imet" "a"    "cow" 
myFun(vector,"Ime")
# [1] "I"   "met" "a"   "cow"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读