我有一个像下面的向量
id < c("1250.3000488281_-57.882898769379_OilA")
我需要在_即-57.882898769379之后提取数字。
我尝试过这样的事情
library(magrittr)
id_play %>%
stringr::str_extract(.,"(?<=[[:punct:]])([0-9]+)(?=_Oil)")
而不是得到-57。----我在“。”之后得到了所有东西。 ,即““ 882898769379”。
如何排除后面的查询不包含标点符号“。”?
最佳答案
带有sub
的选项,用于捕获_
之后的一个或多个数字,并替换为所捕获组的后向引用(\\1
)
sub(".*_(-?[0-9.]+)_.*", "\\1", id)
#[1] "-57.882898769379"