假设我有一堆以下格式给出的字符串:#%d-%d-%d.
例如,
#50-69-1
#49-69-2
...
Run Code Online (Sandbox Code Playgroud)
如何在没有暴力逼近的情况下为每个字符串提取第一个数字?
对于上面的例子我想得到:
50
49
...
Run Code Online (Sandbox Code Playgroud)
尝试
sub('^#(\\d+)-.*', '\\1', str1)
#[1] "50" "49"
Run Code Online (Sandbox Code Playgroud)
str1 <- c('#50-69-1', '#49-69-2')
Run Code Online (Sandbox Code Playgroud)
你可以使用stri_extract功能.
> library(stringi)
> x <- "#50-69-1"
> stri_extract(x, regex="\\d+")
[1] "50"
> regmatches(x, regexpr("\\d+", x))
[1] "50"
Run Code Online (Sandbox Code Playgroud)
要么
> gsub("^\\D*|-.*", "", "#49-69-1")
[1] "49"
> gsub("^#|-.*", "", "#49-69-1")
[1] "49"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |