2017-05-03 86 views
1
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

您可以使用'(\ d +)\ D *(\ d +)'並且集中組1和2 – Jan

+0

@WiktorStribiżew謝謝。它不僅工作,但也有權用我的邏輯來解決此類問題。昨天我試了好多次給予好評,但不能因爲少代表。今天,它應該工作! – rajesh

回答

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組(以提及從替換模式210反向引用)
  • \\D* - 0+非數字字符
  • (\\d+) - 第2組(稱爲與\2)捕獲1+數字
  • .* - 任何0+字符到字符串的末尾。
相關問題