如何将“”(三重引号)编码为原始字符串?

时间:2013-12-29 02:04:48

标签: python rawstring

如何在原始python字符串中编码"""

以下似乎不起作用:

string = r"""\"\"\""""

因为在尝试将"""与正则表达式匹配时,我必须双重转义字符"返回一个空列表:

string = r"""\"\"\""""
regEx = re.compile(r"""
        (\"\"\")
""", re.S|re.X)
result = re.findall(regEx, string)

在这种情况下,结果是一个空列表。 当我从文件内容加载带['"""']的字符串时,此相同的正则表达式返回"""

返回双重转义引用:

string = r"""\"\"\""""
regEx = re.compile(r"""
        (\\"\\"\\")
""", re.S|re.X)
result = re.findall(regEx, string)

现在结果等于['\\"\\"\\"']。 它希望它等于['"""']

2 个答案:

答案 0 :(得分:4)

一般来说,有三种选择:

  1. 请勿使用r前缀。这只是为了避免在正则表达式中过度使用双反斜杠。这不是必需的。
  2. 使用r'…'"字符不在其中。
  3. 混合并匹配r"…"'':,例如pattern = '"""' + r"\s*\d\d-'\d\d'-\d\d\s*" + '"""'
  4. 在这种情况下,你可以同时执行1和2:单引号而不是r前缀。

答案 1 :(得分:0)

最简单的方法就是'"""'