问题
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 print
ing 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