繁体   English   中英

带有反斜杠的python前缀字符串

[英]python prefix string with backslash

我正在寻找一种方法来在python中的字符串前加一个反斜杠,例如“]”->“]”。 由于“ \\”在python中不是有效的字符串,因此简单

mystring = '\' + mystring

将无法正常工作。 我目前正在做的事情是这样的:

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

尽管这在大多数情况下都有效,但它并不美观,并且可能对包含“ @@@”或任何“ filler”设置的字符串造成问题。 有这样做的方法吗?

您需要使用第二个转义符来使反斜杠转义,以使其成为字面的反斜杠:

mystring = "\\" + mystring

否则,它认为您试图转义" ,这反过来意味着您没有引号来终止字符串

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


print a和just a之间的区别:

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

Python字符串具有称为转义字符的功能。 这些允许您在字符串内部做一些特殊的事情,例如在不关闭输入字符串的情况下显示引号(“或')

见此表

所以当你输入

mystring = '\' + mystring

\\'是一个转义的撇号,表示您的字符串中现在已经有一个撇号,表示它实际上并未关闭,您可以看到它,因为该行的其余部分都是彩色的。

要键入反斜杠,必须转义一个,这是这样的:

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

您应按如下所示转义反斜杠:

mystring = "\\" + mystring

这是因为如果您执行'\\' ,它将最终转义第二个引号。 因此,要从字面上对待反斜杠,必须将其转义。

例子

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

你的情况

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

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

r'\%s' % mystring

要么:

r'\{}'.format(mystring)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM