String replace with backslashes in Python

回眸只為那壹抹淺笑 提交于 2019-12-22 12:16:27

问题


I'm trying to do a simple replacement of " " with "\s" (the literal \s, not some sort of backslash escape). This is what I think should happen:

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

I did this:

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

Neither returns what I expected, and I can't for the life of me understand what's going on. What input do I have to use to get my expected output?


回答1:


You're getting what you want. It just doesn't look that way in the REPL:

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

As you can see, that's one character, not two.

Try printing it:

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



回答2:


The result is only displayed, try the following,

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


来源:https://stackoverflow.com/questions/6866696/string-replace-with-backslashes-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!