如何在python中为引用反斜杠完成替换?

时间:2017-02-04 03:36:16

标签: python python-2.7

以下显示了我想要做的事情:

>>> "input '\t' quote tab".replace("'\\",'replace')
"input '\t' quote tab"
>>>

输出显示引号和反斜杠未被替换。

我想知道为什么。

2 个答案:

答案 0 :(得分:3)

\t是一个字符(由@ MaLiN2223指出)。如果你想要它是" raw"那么你需要使用原始字符串:

>>> r"input '\t' quote tab".replace("'\\", 'replace')
"input replacet' quote tab"

以下"转义序列"被视为一个字符,除非' r'或者' R'使用字符串(取自python3 documentationpython2 equivalent):

\newline    Ignored      
\\          Backslash (\)    
\'          Single quote (')     
\"          Double quote (")     
\a          ASCII Bell (BEL)     
\b          ASCII Backspace (BS)     
\f          ASCII Formfeed (FF)      
\n          ASCII Linefeed (LF)      
\N{name}    Character named name in the Unicode database (Unicode only)      
\r          ASCII Carriage Return (CR)   
\t          ASCII Horizontal Tab (TAB)   
\uxxxx      Character with 16-bit hex value xxxx (Unicode only)
\Uxxxxxxxx  Character with 32-bit hex value xxxxxxxx (Unicode only)
\v          ASCII Vertical Tab (VT)      
\ooo        Character with octal value ooo
\xhh        Character with hex value hh

答案 1 :(得分:2)

我认为这是因为python不会将此\视为\,而是\t的一部分。由于\t是单个字符,因此无法替换部分字符。

在此示例中的位置:

"input '\t' quote tab'\\".replace("'\\",'replace')

输出将是:

"input '\t' quote tabreplace"