fork download
  1. import re
  2. s = r"#s{o}me\%thing $ \text{a} $"
  3. rx = r'(?<!\\)((?:\\{2})*)(?:(\$[^$\\]*(?:\\.[^$\\]*)*\$)|([%#{}&]))'
  4. print ( re.sub(rx, lambda x: fr"{x.group(1)}\{x.group(3)}" if x.group(3) else fr"{x.group(1)}{x.group(2)}", s, flags=re.S) )
Success #stdin #stdout 0.02s 9564KB
stdin
Standard input is empty
stdout
\#s\{o\}me\%thing $ \text{a} $