仅在带负数的情况下提取“ =”之后的数字

时间:2018-12-17 16:09:25

标签: r regex string extract

我正尝试仅在“ =”字符串之后提取数字

strings <- c("1t clever=120","3c stupid=-150 bad","5k high iq=150 good")

并尝试

as.numeric(gsub("[^\\d]+","",strings,perl = TRUE))

给出

[1] 1120 3150 5150

预期输出

120 -150 150

如何获得此输出?

2 个答案:

答案 0 :(得分:3)

我们可以尝试

library(stringr)
as.numeric(str_extract(strings, "(?<==)-?\\d+"))
#[1]  120 -150  150

答案 1 :(得分:3)

以R为底

regmatches(strings, gregexpr('(?<==)-?[0-9]+', strings, perl = TRUE))