替换反斜杠'\';用python

替换反斜杠'\';用python,python,replace,python-unicode,Python,Replace,Python Unicode,在python中尝试替换“\”时,数据发生了更改,并给出了未知的字母 我试过string.replace、re.sub、regex\u replace a = '70\123456' b = '70\123\456' a = a.replace('\\','-') b = b.replace('\\','-') 预期结果: a = '70-123456' b = '70-123-456' 但实际结果是: a = 70S456 b = 70SĮ 问题是什么?如何解决?这是因为\123和\4

在python中尝试替换“\”时,数据发生了更改,并给出了未知的字母

我试过string.replace、re.sub、regex\u replace

a = '70\123456'
b = '70\123\456'

a = a.replace('\\','-')
b = b.replace('\\','-')
预期结果:

a = '70-123456'
b = '70-123-456'
但实际结果是:

a = 70S456
b = 70SĮ

问题是什么?如何解决?这是因为
\123
\456
是特殊字符(八进制)。 试试这个:

a = r'70\123456'
b = r'70\123\456'

a = a.replace('\\','-')
b = b.replace('\\','-')

print(a)
print(b)

我建议您先打印
a
b
,然后再调用
replace
尝试
print('70\123456')
。该字符串从未包含反斜杠…请在定义后立即尝试打印(a,b)。它们中是否有反斜杠?您不仅应该在replace函数中引用反斜杠。请参见
\ooo
在字符串文字中的含义:我想制作一个脚本,将“r”与“70\123456”连接起来。从pyspark.sql.functions导入concat_ws n=concat_ws('r','70\123456')打印(n)结果:Column@CharbelKeedy我不明白你的意思。我的字段是70\123456而不是r'70\123456'。怎么处理?@CharbelKeedy你说的田地会这样是什么意思?如果这是您的文本,无论它来自何处,python都会处理它,并从
70\123456
自动将其解析为
70\\123456
。它逃过了刀口