如何获取 r'\\\|'来自 yaml 文件
How to get r'\\\|' from a yaml file
我正在使用 yaml 文件来存储一些配置数据,包括一些(许多)我不想保留在代码中的正则表达式字符串。一切正常,除非我尝试使用 r'\\|'
搜索一些错误转义的管道字符。我在 yaml 中尝试了带引号、不带引号和文字的字符串,但没有任何效果。 Yaml 和 Python 字符串转义规则似乎合谋使字符串中反斜杠的数量保持一致。我用
打开并加载文件
f=open(file_path, 'r', encoding='utf_8')
python_dict = yaml.load(f)
我要复制
re.compile('\\|')
使用类似
的东西
re.compile(python_dict['escaped-pipes'])
Python 3.4 与 PyYAML。
在 YAML 中,\
是只在双引号字符串中的特殊字符。 Python 字符串 r'\\|'
是原始字符串,因此它由三个反斜杠和一个竖线组成。您可以通过以下选项在 YAML 文档中对其进行编码:
plain: \\| # plain scalar. YAML does not process the backslashes.
single: '\\|' # single quoted scalar. YAML also does not process the backslashes.
double: "\\\|" # double quoted scalar. YAML does process escape sequences here, so you
# need to double the backslashes
单引号标量类似于 Python 原始字符串的 YAML 等价物。
您的正则表达式中可能有其他字符可能会干扰 YAML 的语法。您可能想改用块标量,它将 所有 字符视为内容并通过缩进结束:
block: |-
\\|
next block: |-
\\|
|
开始一个 文字块标量 ,-
导致最后的换行符(在下一个项目之前)不是标量的一部分,这是你想要的
我正在使用 yaml 文件来存储一些配置数据,包括一些(许多)我不想保留在代码中的正则表达式字符串。一切正常,除非我尝试使用 r'\\|'
搜索一些错误转义的管道字符。我在 yaml 中尝试了带引号、不带引号和文字的字符串,但没有任何效果。 Yaml 和 Python 字符串转义规则似乎合谋使字符串中反斜杠的数量保持一致。我用
f=open(file_path, 'r', encoding='utf_8')
python_dict = yaml.load(f)
我要复制
re.compile('\\|')
使用类似
的东西re.compile(python_dict['escaped-pipes'])
Python 3.4 与 PyYAML。
在 YAML 中,\
是只在双引号字符串中的特殊字符。 Python 字符串 r'\\|'
是原始字符串,因此它由三个反斜杠和一个竖线组成。您可以通过以下选项在 YAML 文档中对其进行编码:
plain: \\| # plain scalar. YAML does not process the backslashes.
single: '\\|' # single quoted scalar. YAML also does not process the backslashes.
double: "\\\|" # double quoted scalar. YAML does process escape sequences here, so you
# need to double the backslashes
单引号标量类似于 Python 原始字符串的 YAML 等价物。
您的正则表达式中可能有其他字符可能会干扰 YAML 的语法。您可能想改用块标量,它将 所有 字符视为内容并通过缩进结束:
block: |-
\\|
next block: |-
\\|
|
开始一个 文字块标量 ,-
导致最后的换行符(在下一个项目之前)不是标量的一部分,这是你想要的