我有一个向量:
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)
使用捕获组
()
,.+
之间至少有一个字符,非贪婪匹配?
以及直接跟在\d
后面的数字:
library(stringr)
str_extract(a, "package:(.+?)\\d", group = 1)
[1] "base" "base" "base" "graphics"