def unescape(s): start = 0 while start < len(s): pos = s.find('\\', start) if pos == -1: yield s[start:] break yield s[start:pos] pos += 1 esc = s[pos] if esc == 'b': yield '\b' elif esc == 'f': yield '\f' elif esc == 'n': yield '\n' elif esc == 'r': yield '\r' elif esc == 't': yield '\t' elif esc == 'u': yield chr(int(s[pos + 1:pos + 5], 16)) pos += 4 else: yield esc start = pos + 1
def unescape(s): start = 0 while start < len(s): pos = s.find("\\", start) if pos == -1: yield s[start:] break yield s[start:pos] pos += 1 esc = s[pos] if esc == "b": yield "\b" elif esc == "f": yield "\f" elif esc == "n": yield "\n" elif esc == "r": yield "\r" elif esc == "t": yield "\t" elif esc == "u": yield chr(int(s[pos + 1 : pos + 5], 16)) pos += 4 else: yield esc start = pos + 1
def unescape(s): start = 0 result = '' while start < len(s): pos = s.find('\\', start) if pos == -1: if start == 0: return s result += s[start:] break result += s[start:pos] pos += 1 esc = s[pos] if esc == 'u': result += chr(int(s[pos + 1:pos + 5], 16)) pos += 4 elif esc == 'b': result += '\b' elif esc == 'f': result += '\f' elif esc == 'n': result += '\n' elif esc == 'r': result += '\r' elif esc == 't': result += '\t' else: result += esc start = pos + 1 return result
def unescape(s): start = 0 result = "" while start < len(s): pos = s.find("\\", start) if pos == -1: if start == 0: return s result += s[start:] break result += s[start:pos] pos += 1 esc = s[pos] if esc == "u": result += chr(int(s[pos + 1 : pos + 5], 16)) pos += 4 elif esc == "b": result += "\b" elif esc == "f": result += "\f" elif esc == "n": result += "\n" elif esc == "r": result += "\r" elif esc == "t": result += "\t" else: result += esc start = pos + 1 return result