首页 > 解决方案 > 解析字符串 - 在末尾提取数字字符

问题描述

解析 R 数据帧中的字符串字段对我来说有点神秘,恐怕......将不胜感激。

我有一个字符串字段,它总是以不确定数量的数字字符结尾。我想写一些代码来提取每个末尾的数字部分。

数据格式的一个例子是:

df_test <- data.frame(my_string = c("XXX-0387", "XXXX-1-999999", "XXX 12345432", "XXX-2345", "XXX1234"))

我想要的是将末尾的数字部分放入一个新字段中,但要保留任何前导零 - 所以大概新字段必须是 chr 而不是 int。所以我的输出看起来像:

c("0387", "999999", "12345432", "2345", "1234)

请问有没有简单的方法可以做到这一点?

谢谢你。

标签: rstringparsing

解决方案


一种sub用于捕获字符串最后一部分的方法,即数字。

sub('.*?(\\d+)$', '\\1', df_test$my_string)
#[1] "0387"     "999999"   "12345432" "2345"     "1234"  

使用stringr

stringr::str_extract(df_test$my_string, '\\d+$')

推荐阅读