提取直到字符串中的最后一个字符

时间:2017-06-26 15:12:02

标签: r string substr

考虑这些数据:

str <- c("OTB_MCD_100-119_0_0", "PS_SPF_16-31_0_0", "PP_DR/>16-77")

如何将它变成这样的字符串?

str
[1] "OTB_MCD" "PS_SPF" "PP_DR"

我尝试了substr,但是当角色长度不同时它不起作用。

1 个答案:

答案 0 :(得分:2)

我们可以使用sub匹配零个或多个_,后跟0个或更多不是字母的字符([^A-Za-z]*),直到结束($)字符串,将其替换为空白(""

sub("_*[^A-Za-z]*$", "", str)
#[1] "OTB_MCD" "PS_SPF"  "PP_DR"