提取直到字符串中的最后一个字符
Extracting until the last character in a string
考虑以下数据:
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,但是当字符长度不同时,它不起作用。
我们可以使用 sub
来匹配零个或多个 _
后跟 0 个或多个非字母字符 ([^A-Za-z]*
) 直到结尾 ($
)的字符串,将其替换为空白 (""
)
sub("_*[^A-Za-z]*$", "", str)
#[1] "OTB_MCD" "PS_SPF" "PP_DR"
考虑以下数据:
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,但是当字符长度不同时,它不起作用。
我们可以使用 sub
来匹配零个或多个 _
后跟 0 个或多个非字母字符 ([^A-Za-z]*
) 直到结尾 ($
)的字符串,将其替换为空白 (""
)
sub("_*[^A-Za-z]*$", "", str)
#[1] "OTB_MCD" "PS_SPF" "PP_DR"