r - 如何提取两个字符串之间的数字?

标签 r regex stringr stringi

我有一个像下面的向量

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"

关于r - 如何提取两个字符串之间的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56531899/

相关文章:

r - 如何从数据创建 r 矩阵或表

python - 如何使用python3分割字符串

r - 提取部分字符串值,创建新的列名,并使数据框变宽

javascript - 验证 10 位数字的字段 javascript

r - 有没有办法选择性地应用这个 stringr 函数?

r - 通过 HTTPS 将 R 管道工用于 Web API

mysql - 使用 knitr 呈现 SQL 时语法突出显示

r - 每组填充时间序列的有效方法

R str_extract 省略号前后的所有内容

r - 如何将多个必要的模式传递给 str_subset?