提取长度可变的字符串结尾

时间:2019-03-06 17:07:44

标签: r regex stringr

假设您有一个像这样的字符向量:

x <- c('file_123',
       'file_456',
       'file_clean_67890',
       '123_file_1234')

您要提取最后一个"_"之后的字符串结尾。你会怎么做?我想要的结果是:

"123"   "456"   "67890" "1234" 

如果使用str_split,则由于长度不同而无法获得最后一个:

> x %>% str_split(pattern = '_', simplify = T)
     [,1]   [,2]    [,3]  
[1,] "file" "123"   ""    
[2,] "file" "456"   ""    
[3,] "file" "clean" "6789"
[4,] "123"  "file"  "1234"

这个问题在某种程度上是this one的重复,不同之处在于由于我不知道分割的数量。另外,您可能在最后一个下划线之前使用数字字符,因此不能仅检测到这些字符。

1 个答案:

答案 0 :(得分:0)

将stringr中的str_extract_all与正则表达式一起使用。有关int*?regular expression[:digit:]元字符的信息,请参见+

$