我们说我有一堆格式的字符串:#%d-%d-%d
。
例如,
#50-69-1
#49-69-2
...
如何在没有暴力逼近的情况下为每个字符串提取第一个数字?
对于上面的示例,我想得到:
50
49
...
答案 0 :(得分:6)
尝试
sub('^#(\\d+)-.*', '\\1', str1)
#[1] "50" "49"
str1 <- c('#50-69-1', '#49-69-2')
答案 1 :(得分:5)
您可以使用stri_extract
功能。
> library(stringi)
> x <- "#50-69-1"
> stri_extract(x, regex="\\d+")
[1] "50"
> regmatches(x, regexpr("\\d+", x))
[1] "50"
或强>
> gsub("^\\D*|-.*", "", "#49-69-1")
[1] "49"
> gsub("^#|-.*", "", "#49-69-1")
[1] "49"
答案 2 :(得分:3)
x <- c("50-69-1","49-69-2")
您可以使用
substring(x,1,2)
> [1] "50" "49"