fork download
  1. import re
  2.  
  3. def censor(message, /, word):
  4. return re.sub(
  5. fr'(\|\|.+?\|\|)|\b{re.escape(word)}\b',
  6. lambda match: match[1] or f'{word[0]}||{word[1:]}||',
  7. message
  8. )
  9.  
  10.  
  11. t = ['Omg I\'m so dead', 'Omg I\'m so d||ead||', '||Omg I\'m so dead||']
  12.  
  13. for e in t:
  14. print(f"{e!r:<21}: {censor(e, word = 'dead')!r}")
  15.  
Success #stdin #stdout 0.03s 9872KB
stdin
Standard input is empty
stdout
"Omg I'm so dead"    : "Omg I'm so d||ead||"
"Omg I'm so d||ead||": "Omg I'm so d||ead||"
"||Omg I'm so dead||": "||Omg I'm so dead||"