string1 <- c("4 ft. x 6 ft. Area")
string2 <- c("text text 12 ft. x text text 12 ft. X 20 ft. text text")
我想删除前两位数字中的所有文字,元字符。所需的输出如下所示:
output1 <- 46
output2 <- 1212
我尝试使用gsub("\\d.+?\\d","",string1)
,其输出为" ft. Area"
。我该怎么办?
答案 0 :(得分:1)
您可以使用以下解决方案:
s <- c("4 ft. x 6 ft. Area", "text text 12 ft. x text text 12 ft. X 20 ft. text text")
sub("\\D*(\\d+)\\D*(\\d+).*", "\\1\\2", s)
## => [1] "46" "1212"
<强>详情:
\\D*
- 0+非数字字符(\\d+)
- 第1组(从替换模式引用\1
反向引用)\\D*
- 0+非数字字符(\\d+)
- 第2组(称为\2
)捕获1+位数.*
- 字符串末尾的任何0+字符。