如何从文本中提取数字?

How to extract numbers from text?

我有流畅的文本字符串:

string <- "['CBOE SHORT-TERM VIX FUTURE DEC 2016', 81.64],\n\n    ['CBOE SHORT-TERM VIX FUTURE JAN 2017', 18.36]"

是否有一种简单的方法可以从文本中提取数字元素而无需使用:

string_table <- strsplit(string, " ")

然后 select 第 n 个元素并继续 strsplit 直到我得到我需要的东西。

结果应该是:

result <- c(2016, 81, 64, 2017, 18, 36)

谢谢。

我们可以通过将模式指定为一个或多个数字 ([0-9]+) 来使用 str_extract_all。输出将是长度为 1 的 list,用 [[ 提取向量并转换为 numeric.

library(stringr)
as.numeric(str_extract_all(string, "[0-9]+")[[1]])
#[1] 2016   81   64 2017   18   36

如果我们使用 strsplit,按非数字字符拆分

as.numeric(strsplit(string, "\D+")[[1]][-1])
#[1] 2016   81   64 2017   18   36