从字符串中提取和合并数字

时间:2016-09-01 10:45:01

标签: regex r

我的数字字符串如下:

972 2 6424979
81|5264627
49-0202-2801986
07.81.48.27.89
0664/3420034
06041 - 8728

并希望获得如下输出:

97226424979
815264627
4902022801986
0781482789
06643420034
060418728

我尝试使用:

as.numeric(gsub("([0-9]+).*$", "\\1", numbers))

但输出中的数字是分开的。

2 个答案:

答案 0 :(得分:1)

要获得准确的输出,

#to avoid scientific notation
options(scipen=999)

#find which have leading 0
ind <- which(substring(x, 1, 1) == 0)

y <- as.numeric(gsub("\\D", "", numbers))
y[ind] <- paste0('0', y[ind])
y
#[1] "97226424979"   "815264627"     "4902022801986" "0781482789"    "06643420034"   "060418728"

答案 1 :(得分:0)

([0-9]+).*$将一个数字序列放到第一个非数字\\1之前。但是,你想要:

numbers <- readLines(n=6)
972 2 6424979
81|5264627
49-0202-2801986
07.81.48.27.89
0664/3420034
06041 - 8728
as.numeric(gsub("\\D", "", numbers))

这取代所有非数字。