如何使用 stringr 提取重复模式之间的多个数字?

问题描述 投票:0回答:1

我有一列字符串,类似于下面的字符串,其中双冒号

"::"
后面的数字是年龄。在此示例中,51、40、9、5、2 和 15 是年龄。
"||"
后面的数字只是表示这是第一人称、第二人称等。我只想提取年龄。

library(tidyverse)

ex_str = "0::51||1::40||2::9||3::5||4::2||5::15"

我尝试过类似的事情,

test_string |>
  str_extract_all("::[0-9]+")

只是为了得到下面的输出。

[[1]]
[1] "::51" "::40" "::9"  "::5"  "::2"  "::15"

对于这个简单的问题,我深表歉意。我看了一些视频并在线阅读了一些指南,但我就是不明白。

r rstudio
1个回答
0
投票

您可以尝试在“||”上使用

strsplit
然后
gsub
输出第一个数字和“::”:

gsub("\\d+::", "",strsplit(ex_str, "\\|\\|")[[1]])

#[1] "51" "40" "9"  "5"  "2"  "15"
© www.soinside.com 2019 - 2024. All rights reserved.