fork(1) download
  1. var <- c("a1","a2","a3","a4")
  2. s = "3*a1 + a1*a2 + 4*a3*a4 + a1*a3"
  3. block = paste(var, collapse="|")
  4. pat = paste0("\\b((?:", block, ")\\*)(?=\\b(?:", block, ")\\b)|\\*")
  5. gsub(pat, "\\1", s, perl=T)
Success #stdin #stdout 0.45s 79168KB
stdin
Standard input is empty
stdout
[1] "3a1 + a1*a2 + 4a3*a4 + a1*a3"