我有这个数据:bytesObj = b'{"a":1,"b":"test","c":"\xfc\\\\\xba\xda\\n123"}'tmpStr = bytesObj.decode('gb18030','ignore')tmpStr{"a":1,"b":"test","c":"黒\\黑\\n123"}我有什么尝试:import reb = re.sub(r'\\', '', tmpStr)然后我得到:{"a":1,"b":"test","c":"黒黑n123"}我的预期输出:{"a":1,"b":"test","c":"黒黑\n123"}你能帮我吗?
2 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
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
慕斯王
TA贡献1864条经验 获得超2个赞
你也可以放弃 reg ex。
newStr = ''
for index, char in enumerate(tmpStr):
if char == '\\' and tmpStr[index+1] != 'n':
newStr += ''
else:
newStr += tmpStr[index]
print(newStr)
添加回答
举报
0/150
提交
取消