fork(7) download
  1. import re
  2. rx = r"('[^'\\]*(?:\\.[^'\\]*)*')|\b{0}\b"
  3. s = r"""
  4. var foe = 10;
  5. foe = "";
  6. dark_vador = 'bad guy'
  7. foe = ' I\'m your father, foe ! '
  8. bar = thingy + foe"""
  9. toReplace = "foe"
  10. res = re.sub(rx.format(toReplace), lambda m: m.group(1) if m.group(1) else 'NEWORD', s)
  11. print(res)
  12.  
Success #stdin #stdout 0s 9024KB
stdin
Standard input is empty
stdout
    var NEWORD = 10;
	NEWORD = "";
	dark_vador = 'bad guy'
	NEWORD = ' I\'m your father, foe ! '
	bar = thingy + NEWORD