如何在R中提取其他字符串和数字之间的字符串?

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

我有一个向量:

a <- c("{.package:base73","for.package:base476",":.package:base9","print.package:graphics834")

我需要提取 package: 和第一个数字之间的字符串。

所以输出应该是:

c("base", "base", "base", "graphics")

我尝试过这个,但它没有按我的意愿工作:

b <- "{.package:base71"
gsub(".*package:(.+)[1-9]+", "\\1", b)
r regex gsub
1个回答
0
投票

使用捕获组

()
.+
之间至少有一个字符,非贪婪匹配
?
以及直接跟在
\d
后面的数字:

library(stringr)
str_extract(a, "package:(.+?)\\d", group = 1)
[1] "base"     "base"     "base"     "graphics"
© www.soinside.com 2019 - 2024. All rights reserved.