热线电话:13121318867

登录
2019-03-08 阅读量: 1270
gsub / sub在某些字符之间提取

如何从R中的以下字符串中提取数字/ ID?

link <- "D:/temp/sample_data/0000098618-13-000011.htm"

我想提取 0000098618-13-000011

那是丢弃.htm和D:/temp/sample_data/。

我没有太多运气试过grep和gsub。

解决办法:使用basename后跟sub:

sub("\\..*", "", basename(link))

## [1] "0000098618-13-000011"

要么

library(tools)

file_path_sans_ext(link)

## [1] "0000098618-13-000011"

或者以更复杂的模式为代价,我们可以在一个单独的模式中完成sub:

sub(".*/(.*)\\..*", "\\1", link)

## [1] "0000098618-13-000011"

或单个gsub:

gsub(".*/|\\.[^.]*$", "", link)

## [1] "0000098618-13-000011"

或者strsplit:

sapply(strsplit(link, "[/.]"), function(x) tail(x, 2)[1])

## [1] "0000098618-13-000011"

8.6399
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子