正如其他人所说,您需要使用'\\'
. 您认为这不起作用的原因是,当您获得结果时,它们看起来像是以两个反斜杠开头。但是它们不是以两个反斜杠开头的,只是 Python显示了两个反斜杠。如果没有,您将无法区分换行符(表示为\n
)和反斜杠后跟字母 n(表示为\\n
)之间的区别。
有两种方法可以让自己相信真正发生的事情。一种是在结果上使用 print ,这会导致它扩展转义:
>>> x = "here is a backslash \\ and here comes a newline \n this is on the next line"
>>> x
u'here is a backslash \\ and here comes a newline \n this is on the next line'
>>> print x
here is a backslash \ and here comes a newline
this is on the next line
>>> startback = x.find('\\')
>>> x[startback:]
u'\\ and here comes a newline \n this is on the next line'
>>> print x[startback:]
\ and here comes a newline
this is on the next line
另一种方法是使用len
来验证字符串的长度:
>>> x = "Backslash \\ !"
>>> startback = x.find('\\')
>>> x[startback:]
u'\\ !'
>>> print x[startback:]
\ !
>>> len(x[startback:])
3
注意len(x[startback:])
是 3。字符串包含三个字符:反斜杠、空格和感叹号。只需查看仅包含反斜杠的字符串,您就可以更简单地了解发生了什么:
>>> x = "\\"
>>> x
u'\\'
>>> print x
\
>>> len(x)
1
x
__repr__
当您在交互式提示下评估它时(或以其他方式使用它的方法),它看起来只是以两个反斜杠开头。当你实际打印时,你可以看到它只有一个反斜杠,当你查看它的长度时,你可以看到它只有一个字符长。
所以这意味着您需要转义 中的反斜杠find
,并且您需要认识到输出中显示的反斜杠也可能加倍。