在原始字符串r中逃避单引号(')......

时间:2014-12-14 09:13:05

标签: python string python-2.7

我希望它打印出来

this is '(single quote) and "(double quote)

我使用以下内容(我想在这里使用原始字符串'r')

a=r'this is \'(single quote) and "(double quote)' 

但打印出来

this is \'(single quote) and "(double quote)

在原始字符串中转义'的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

>>> a=r'''this is '(single quote) and "(double quote)'''
>>> print(a)
this is '(single quote) and "(double quote)

答案 1 :(得分:4)

引自Python String Literals Docs

  

当存在'r''R'前缀时,字符串中包含反斜杠后面的字符不会更改,并且所有反斜杠都保留在字符串中。例如,字符串文字r"\n"由两个字符组成:反斜杠和小写'n'字符串引号可以使用反斜杠进行转义,但反斜杠仍保留在字符串中; 例如,r"\""是一个有效的字符串文字,由两个字符组成:反斜杠和双引号。< / p>

有两种方法可以修复此

  1. 使用多行原始字符串,如Python Strings

    部分所述
    print(r"""this is '(single quote) and "(double quote)""")
    # this is '(single quote) and "(double quote)
    
  2. 使用String literal concatenation

    print(r"this is '(single quote) and " r'"(double quote)')
    # this is '(single quote) and "(double quote)