fork download
  1. test.dat <- c("abcde", "abcXe", "abcdY", "abcXY", "abYcXY", "abcYX")
  2. sub("^([^XY]*)(Y)([^X]*)$|(.*)(X)", "\\1\\41\\3\\5\\2", test.dat)
  3. # => [1] "abcde" "abc1Xe" "abcd1Y" "abc1XY" "abYc1XY" "abcY1X"
  4.  
  5. stringr::str_replace(test.dat, "^([^XY]*)(Y)([^X]*)$|(.*)(X)", "\\1\\41\\3\\5\\2")
  6. # => [1] "abcde" "abc1Xe" "abcd1Y" "abc1XY" "abYc1XY" "abcY1X"
Success #stdin #stdout 0.28s 42808KB
stdin
Standard input is empty
stdout
[1] "abcde"   "abc1Xe"  "abcd1Y"  "abc1XY"  "abYc1XY" "abcY1X" 
[1] "abcde"   "abc1Xe"  "abcd1Y"  "abc1XY"  "abYc1XY" "abcY1X"