2011-07-28 68 views
1

我试图用“\ s”(文字\ s,而不是某种反斜杠转义)来简单替换“”。这就是我认为应该发生:用Python中的反斜杠替换字符串

>>> 'asdf hjkl'.replace(' ', '\s') 
'asdf\shjkl' 

我这样做:

>>> 'asdf hjkl'.replace(' ', '\s') 
'asdf\\shjkl' 
>>> 'asdf hjkl'.replace(' ', '\\s') 
'asdf\\shjkl' 

也不返回我的预期,我不能为我的生命明白发生了什么事情。我必须使用什么输入才能获得预期的输出?

回答

3

你得到你想要的。它只是不看在REPL这样:

>>> 'asdf hjkl'.replace(' ', '\s')[4] 
'\\' 

正如你所看到的,这是一个字符,而不是两个。

尝试print荷兰国际集团它:

>>> print 'asdf hjkl'.replace(' ', '\s') 
asdf\shjkl 
+0

所以,当确实的REPL行为也是这样吗? –

+1

@arxanas:与REPL没有多大关系,REPL只是使用'repr'来打印输入语句所产生的对象(“None”除外)。而一个字符串的'repr'是一个字符串字面值,当它作为Python表达式计算时,会给出相同的字符串。 – delnan

2

结果仅显示, 尝试以下方法,

a = 'asdf hjkl'.replace(' ','\s') 
print a