如何删除R中字符串的开头和结尾?

时间:2017-09-23 16:48:31

标签: r

我有这个字符串mystring。我想一次性删除字符串的开头和结尾并获得结果。我该怎么做?

mystring <- c("new_DCLd_2_LTR_assembly.csv", "new_nonLTR_DCLd_2_assembly.csv"
)

我想要的结果:

DCLd_2_LTR_assembly nonLTR_DCLd_2_assembly

2 个答案:

答案 0 :(得分:3)

我们可以使用gsub来匹配零个或多个不是_[^_]*)的字符,然后从一开始就匹配_ ^ )字符串或(|.后跟csv并将其替换为空白(""

gsub("^[^_]*_|\\.csv", "", mystring)
#[1] "DCLd_2_LTR_assembly"    "nonLTR_DCLd_2_assembly"

或者将sub与捕获组一起使用

sub("^[^_]*_([^.]*)\\..*", "\\1", mystring)

答案 1 :(得分:2)

library(stringr) 
str_sub(mystring,5,-5)
[1] "DCLd_2_LTR_assembly"    "nonLTR_DCLd_2_assembly"

或者只是使用(按照akrun)

substr(mystring, 5, nchar(mystring)-4)