样本数据
x=c("AG.av08_binloop_v6","TL.av1_binloopv2")
Run Code Online (Sandbox Code Playgroud)
示例尝试
y=gsub(".*_","",x)
Run Code Online (Sandbox Code Playgroud)
样品要求
WANT=c("binloop_v6","binloopv2")
Run Code Online (Sandbox Code Playgroud)
基本上我的目标是在第一个下划线值之后提取所有字符。
在pattern,我们可以改变零个或多个任意字符(.*-这里.是元字符,可以任意字符匹配),零个或多个字符,一个不_([^_]*)从一开始(^字符串)。
sub("^[^_]*_", "", x)
#[1] "binloop_v6" "binloopv2"
Run Code Online (Sandbox Code Playgroud)
如果我们不指定它,_则将匹配到_字符串中的最后一个,直到该子字符串将丢失,返回 'v6' 和 'binloopv2'
一个更简单的选择是word从stringr
library(stringr)
word(x, 2, sep = "_")
#[1] "binloop" "binloopv2"
Run Code Online (Sandbox Code Playgroud)