加入“\&引用;对于字符串Python,“如何插入”\&引用;在字符串中的每个参数之前?

加入“\&引用;对于字符串Python,“如何插入”\&引用;在字符串中的每个参数之前?,python,Python,如何将“\”字符添加到字符串中 例如,如果我有“testme”,我有 "testme"+"\" 我会得到一个错误 在字符串中的每个参数之前添加“\”的“pythonic”方法是什么 例如,从“(hi)”转到“\(hi\)” 我目前的方法是迭代每个字符,并尝试附加一个“\”,我觉得这不是“pythonic”反斜杠用于转义各种字符,因此要在字符串中包含一个文本反斜杠,您需要使用“\\”,例如: >>> print "testme" + "\\" testme\ 因此,要在字符串

如何将
“\”
字符添加到字符串中

例如,如果我有
“testme”
,我有

"testme"+"\"
我会得到一个错误

在字符串中的每个参数之前添加
“\”
的“pythonic”方法是什么

例如,从
“(hi)”转到“\(hi\)”


我目前的方法是迭代每个字符,并尝试附加一个
“\”
,我觉得这不是“pythonic”

反斜杠用于转义各种字符,因此要在字符串中包含一个文本反斜杠,您需要使用
“\\”
,例如:

>>> print "testme" + "\\"
testme\
因此,要在字符串中的每个参数前添加反斜杠,可以使用以下命令:

s = s.replace('(', '\\(').replace(')', '\\)')
s = s.replace('(', r'\(').replace(')', r'\)')
或使用正则表达式:

import re
s = re.sub(r'([()])', r'\\\1', s)
请注意,您还可以通过在开头引号之前添加字母
r
来使用原始字符串文字,这样可以按字面解释反斜杠,而不会进行转义。因此
r'foo\bar'
将与
'foo\\bar'
相同。因此,您可以重写第一种方法,如下所示:

s = s.replace('(', '\\(').replace(')', '\\)')
s = s.replace('(', r'\(').replace(')', r'\)')
请注意,即使在原始字符串文本中,也可以使用反斜杠来转义用于字符串文本的引号,因此
r'we're'
'we're'
“we're”
相同。这就是为什么当您希望最后一个字符是反斜杠(例如
r'testme\'
)时,原始字符串文本无法正常工作的原因(这将是一个语法错误,因为字符串文本从未关闭)