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

问题描述

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

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

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

解决方法

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

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

[1] "ABC_Something" "Filename"
,

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...