dat <- c("00000000AAAAAAAAAA0AAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAD0","102030405000AZD") gsub("\\G0", ".", dat, perl=TRUE) gsub("\\G[^\\p{L}0]*\\K0", ".", dat, perl=TRUE)
Standard input is empty
[1] "........AAAAAAAAAA0AAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAD0" [2] "102030405000AZD" [1] "........AAAAAAAAAA0AAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAD0" [2] "1.2.3.4.5...AZD"