使用pyparsing解析键值对,其中值可以在多行上继续

时间:2018-01-09 15:45:56

标签: python pyparsing

如何使用pyparsing解析以下关键属性定义?

some_key a b c d
other_key /some/path /some/other/path.pl \
  '$SOME_ENV_VAR$' \
  '$OTHER_ENV_VAR$'

此示例中的键是some_keyother_key。值是包含[ \t]之后的行的后缀,位于键名后面的空格中,并带有\的续行选项。

我对pyparsing相对较新,这超出了我目前的能力。

1 个答案:

答案 0 :(得分:1)

pyparsing的{​​{3}}(例如source code)具有指导意义,以下内容现在适用于我:

name = pp.Word(pp.alphas + '_', pp.alphanums + '_')
value = pp.Regex(r'(?:[^\n]*\\\n)*[^\n]*')
definition = name + value