python3没有decode_我如何在Python3中使用.decode('string-escape')?

你不能使用unicode_escape字节字符串(或者更确切地说,你可以,但它并不总是返回与string_escapePython 2 相同的东西) - 小心!

此函数实现string_escape使用正则表达式和自定义替换逻辑。def unescape(text):

regex = re.compile(b'\\\\(\\\\|[0-7]{1,3}|x.[0-9a-f]?|[\'"abfnrt]|.|$)')

def replace(m):

b = m.group(1)

if len(b) == 0:

raise ValueError("Invalid character escape: '\\'.")

i = b[0]

if i == 120:

v = int(b[1:], 16)

elif 48 <= i <= 55:

v = int(b, 8)

elif i == 34: return b'"'

elif i == 39: return b"'"

elif i == 92: return b'\\'

elif i == 97: return b'\a'

elif i == 98: return b'\b'

elif i == 102: return b'\f'

elif i == 110: return b'\n'

elif i == 114: return b'\r'

elif i == 116: return b'\t'

else:

s = b.decode('ascii')

raise UnicodeDecodeError(

'stringescape', text, m.start(), m.end(), "Invalid escape: %r" % s            )

return bytes((v, ))

result = regex.sub(replace, text)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值