fork download
  1. import re
  2. rx = r"""(?m)(?:(?<=^)|(?<=~))"|"(?=$|~)|"(?=[^\n"~]+(?:~|$))"""
  3. rx_0 = r"""(?m)(?:(?<=^)|(?<=~))"(.*?)"(?=$|~)"""
  4. s = ("\"ID\"~\"Name\"~\"DESC\"\n"
  5. "1~2014~13~\"DS\"~DF\"\n"
  6. "1~2014~13~\"DS\"~\"DF\"\n"
  7. "\"1ABCA~B C\"~\"ERTE\"\n"
  8. "\"2\"~\"XYZ\"~\"ABC~ is~ bother\"\n"
  9. "\"3\"~\"YYZ\"~\"MEL O CRÈME DOUGHNUTS RECLASS\"\n"
  10. "4~\"XAA\"~\"sf~sd sdfsf\"\n"
  11. "5~\"TES\"~\"SFSFSF\"sdfsf\"\n"
  12. "6~\"ABC\"SDDSL~\"dfadf\"")
  13.  
  14. print( re.sub(rx, "", re.sub(rx_0, lambda x: x.group(1).replace('~', ' '), s)))
  15.  
Success #stdin #stdout 0.02s 6924KB
stdin
Standard input is empty
stdout
ID~Name~DESC
1~2014~13~DS~DF
1~2014~13~DS~DF
1ABCA B C~ERTE
2~XYZ~ABC  is  bother
3~YYZ~MEL O CRÈME DOUGHNUTS RECLASS
4~XAA~sf sd sdfsf
5~TES~SFSFSFsdfsf
6~ABC"SDDSL dfadf