【发布时间】:2021-10-08 05:32:35
【问题描述】:
我有这串字
string<-c("chair-desk-tree-table-computer-mousse")
我想检索每个单词的前三个字符并将它们存储在这样的对象中:
newstring==> [1] "cha-des-tre-tab-com-mou"
【问题讨论】:
我有这串字
string<-c("chair-desk-tree-table-computer-mousse")
我想检索每个单词的前三个字符并将它们存储在这样的对象中:
newstring==> [1] "cha-des-tre-tab-com-mou"
【问题讨论】:
> newstring <- substring( strsplit(string, "-")[[1]], 1, 3)
> newstring <- paste0(newstring, collapse = "-")
> newstring
[1] "cha-des-tre-tab-com-mou"
【讨论】:
使用 gsub 和正则表达式环视来匹配一个或多个位于 3 个小写字母之前的小写字母
gsub("(?<=\\b[a-z]{3})[a-z]+", "", string, perl = TRUE)
[1] "cha-des-tre-tab-com-mou"
使用编辑后的字符串
> string <- c(string, "K29-E665-I1190")
> gsub("(?<=\\b[[:alnum:]]{3})[[:alnum:]]+", "", string, perl = TRUE)
[1] "cha-des-tre-tab-com-mou" "K29-E66-I11"
【讨论】:
[A-Za-z] 而不是[a-z]
[A-Za-z] 似乎没有考虑到帐号
[[:alnum:]] 而不是[A-Za-z]