如何在第二个下划线后删除行名的一部分

时间:2019-02-18 17:42:37

标签: r gsub

我想获取字符串中第二个下划线之前的所有字符。有什么想法可以做到吗?

我有这个:
Part1-Part2_Part3_Part4

我想要这个:

Part1-Part2_Part3

所有部分都可以彼此不同,也可以有4个以上的部分。

2 个答案:

答案 0 :(得分:0)

您可以尝试gregexpr

str <- 'Part1-Part2_Part3_Part4'
start <- 1
end <- (unlist(gregexpr('_', str))[2] - 1)
substr(str, start, end)

答案 1 :(得分:0)

您可以尝试使用gsub函数进行延迟匹配:

a = "Part1-Part2_Part3_Part4"

gsub("(.+?_.+?)_.*" ,"\\1", a)
# [1] "Part1-Part2_Part3"