我有这个字符串mystring
。我想一次性删除字符串的开头和结尾并获得结果。我该怎么做?
mystring <- c("new_DCLd_2_LTR_assembly.csv", "new_nonLTR_DCLd_2_assembly.csv"
)
我想要的结果:
DCLd_2_LTR_assembly
nonLTR_DCLd_2_assembly
答案 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)