R 返回第一个下划线后的所有字符

bvo*_*owe 3 r gsub

样本数据

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)

基本上我的目标是在第一个下划线值之后提取所有字符。

akr*_*run 7

pattern,我们可以改变零个或多个任意字符(.*-这里.是元字符,可以任意字符匹配),零个或多个字符,一个不_[^_]*)从一开始(^字符串)。

sub("^[^_]*_", "", x)
#[1] "binloop_v6" "binloopv2" 
Run Code Online (Sandbox Code Playgroud)

如果我们不指定它,_则将匹配到_字符串中的最后一个,直到该子字符串将丢失,返回 'v6' 和 'binloopv2'


一个更简单的选择是wordstringr

library(stringr)
word(x, 2, sep = "_")
#[1] "binloop"   "binloopv2"
Run Code Online (Sandbox Code Playgroud)