如何在保留'\n'的同时替换'\'?

我有这个数据:


bytesObj = b'{"a":1,"b":"test","c":"\xfc\\\\\xba\xda\\n123"}'

tmpStr = bytesObj.decode('gb18030','ignore')

tmpStr

{"a":1,"b":"test","c":"黒\\黑\\n123"}

我有什么尝试:


import re

b = re.sub(r'\\', '', tmpStr)

然后我得到:


{"a":1,"b":"test","c":"黒黑n123"}

我的预期输出:


{"a":1,"b":"test","c":"黒黑\n123"}

你能帮我吗?


守着星空守着你
浏览 90回答 2
2回答

慕码人2483693

n您可以通过排除after来做到这一点\。b = re.sub(r'\\(?!n)', '', tmpStr)这导致:{"a":1,"b":"test","c":"黒黑\n123"}您还可以通过使用|管道符号来使用字符集合。在下面\n和\x被忽略。b = re.sub(r'\\(?!n|x)', '', tmpStr)附录(?!     look ahead operator

慕斯王

你也可以放弃 reg ex。newStr = ''for index, char in enumerate(tmpStr):  if char == '\\' and tmpStr[index+1] != 'n':     newStr += ''  else:    newStr += tmpStr[index]print(newStr)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python