我有這個(gè)數(shù)據(jù):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"}我的預(yù)期輸出:{"a":1,"b":"test","c":"黒黑\n123"}你能幫我嗎?
2 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
n
您可以通過(guò)排除after來(lái)做到這一點(diǎn)\
。
b = re.sub(r'\\(?!n)', '', tmpStr)
這導(dǎo)致:
{"a":1,"b":"test","c":"黒黑\n123"}
您還可以通過(guò)使用|
管道符號(hào)來(lái)使用字符集合。在下面\n
和\x
被忽略。
b = re.sub(r'\\(?!n|x)', '', tmpStr)
附錄
(?! look ahead operator

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
你也可以放棄 reg ex。
newStr = ''
for index, char in enumerate(tmpStr):
if char == '\\' and tmpStr[index+1] != 'n':
newStr += ''
else:
newStr += tmpStr[index]
print(newStr)
添加回答
舉報(bào)
0/150
提交
取消