带反斜杠的python前缀字符串

时间:2014-04-04 15:40:39

标签: python string

我正在寻找一种在python中使用单个反斜杠为字符串添加前缀的方法,例如: “]” - > “]”。因为“\”不是python中的有效字符串,所以简单

mystring = '\' + mystring

不起作用。我目前正在做的是这样的事情:

mystring = r'\@@@' + mystring
mystring.replace('@@@','')

虽然这在大多数情况下都有效,但它并不优雅,也会导致包含“@@@”的字符串或“填充”设置的字符串出现问题。有没有更好的方法来做到这一点?

4 个答案:

答案 0 :(得分:3)

你需要使用第二个转义反斜杠,使其成为字面反斜杠:

mystring = "\\" + mystring

否则它会认为你试图逃避",这反过来意味着你没有引用来终止字符串

通常,您可以使用原始字符串表示法(r'string'),但当反斜杠是最后一个字符时,它不会起作用


print aa之间的差异:

>>> a = 'hello'
>>> a = '\\' + a
>>> a
'\\hello'
>>> print a
\hello

答案 1 :(得分:2)

Python字符串有一个名为转义字符的功能。这些允许你在字符串中做特殊的事情,比如显示引号(“或”)而不关闭你正在输入的字符串

See this table

所以当你输入

mystring = '\' + mystring

\'是一个转义的撇号,意味着你的字符串现在有一个撇号,这意味着它实际上并没有关闭,你可以看到它,因为该行的其余部分是彩色的。

要键入反斜杠,您必须转义一个反斜杠,如下所示:

>>> aBackSlash = '\\'
>>> print(aBackSlash)
\

答案 2 :(得分:1)

您应该按如下方式转义反斜杠:

mystring = "\\" + mystring

这是因为如果你做'\',它将最终逃脱第二次引用。因此,要从字面上对待反斜杠,你必须逃避它。

实施例

>>> s = 'hello'
>>> s = '\\' + s
>>> print
\hello

您的案例

>>> mystring = 'it actually does work'
>>> mystring = '\\' + mystring
>>> print mystring
\it actually does work

答案 3 :(得分:1)

作为解决问题的另一种方法,您是否考虑过字符串格式?

r'\%s' % mystring

或:

r'\{}'.format(mystring)