如何替换前两位数字内的字符值

时间:2017-05-03 10:02:22

标签: r regex

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"。我该怎么办?

1 个答案:

答案 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"

请参阅online R demo

<强>详情:

  • \\D* - 0+非数字字符
  • (\\d+) - 第1组(从替换模式引用\1反向引用)
  • \\D* - 0+非数字字符
  • (\\d+) - 第2组(称为\2)捕获1+位数
  • .* - 字符串末尾的任何0+字符。