如何在原始 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)
现在结果等于 ['\\"\\"\\"']
。
它希望它等于 ['"""']
。
最佳答案
一般来说,有以下三种选择:
- 不要使用
r
前缀。这只是为了避免在正则表达式中过度使用双反斜杠。这不是必需的。 - 使用
r'…'
,其中"
字符并不特殊。 - 混合搭配
r"…"
和''
:,例如pattern = '"""' + r"\s*\d\d-'\d\d'-\d\d\s*"+ '"""'
在这种情况下,您可以同时执行 1 和 2:单引号和无 r
前缀。
关于python - 如何将 """(三引号)编码为原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20821431/