在R中的最后一个下划线之后分割字符串

时间:2020-08-13 04:21:04

标签: r regex string split

我有一个类似“ ABC_Something_Filename”的字符串。如何在R中将其拆分为“ ABC_Something”和“文件名”?

我不想删除任何内容。我需要两个组件-最后一个下划线之前和之后。

编辑:我尝试使用提到的列分隔功能,但是对于我的用例来说,范围太广了。因此,我找到了一种正则表达式的替代方法,可以简单地拆分字符串

2 个答案:

答案 0 :(得分:1)

一种选择是使用strsplit并使用负前瞻,它断言要在其上进行拆分的下划线是输入中的最后一个:

input <- "ABC_Something_Filename"
parts <- strsplit(input, "_(?!.*_)", perl=TRUE)[[1]]
parts

[1] "ABC_Something" "Filename"

答案 1 :(得分:0)

您可以使用str_match并捕获两组数据。

x <- 'ABC_Something_Filename'
stringr::str_match(x, '(.*)_(.*)')[, -1]
#[1] "ABC_Something" "Filename"