I am trying to replace all the float numbers in the string with the same numbers rounded to 2 decimal places. For example \"Hello23.898445World1.12212\" should
Or using stringr:
library(stringr)
x <- "Hello23.898445World1.12212"
r1 <- round(as.numeric(str_extract_all(x, "-*\\d+\\.*\\d*")[[1]]),2)
# [1] 23.90 1.12
r2 <- strsplit(gsub("\\d", "", x),"\\.")[[1]]
# [1] "Hello" "World"
paste0(r2, format(r1, digits = 3, trim=T), collapse = "")
# [1] "Hello23.90World1.12"