我有这个字符串:
string <-"DIS_S_CD_EFS-NO_PCI-CD_ACT_CG-SOM_MT_ECT_CVE"
我只需要从中提取SOM_MT_ECT_CVE
。
所以对我来说,关键字是SOM
(确定其位置)。
我尝试使用这个:
d <-substr(gregexpr(pattern ='SOM',"DIS_S_CD_EFS-NO_PCI-CD_ACT_CG-SOM_MT_ECT_CVE"),
nchar("DIS_S_CD_EFS-NO_PCI-CD_ACT_CG-SOM_MT_ECT_CVE"),"DIS_S_CD_EFS-NO_PCI-CD_ACT_CG-SOM_MT_ECT_CVE")
但是它返回NA值。
答案 0 :(得分:1)
一个选项是sub
,以匹配字符(.*
)直到'SOM',将'SOM'捕获到组((...)
)中的其余字符中。替换使用捕获组的后向引用(\\1
)
sub(".*(SOM_.*)", "\\1", string)
#[1] "SOM_MT_ECT_CVE"
或使用stringr
library(stringr)
str_extract(string, "SOM.*")
#[1] "SOM_MT_ECT_CVE"
答案 1 :(得分:0)
您可以分割连字符并得到最后一个单词,即
tail(strsplit(string, '-', fixed = TRUE)[[1]], 1)
#[1] "SOM_MT_ECT_CVE"
或者使用word
中的stringr
,
stringr::word(string, -1, sep = '-')
#[1] "SOM_MT_ECT_CVE"