我希望有人能指出一种让pyparse处理以下数据流的方法:
"text { \n line1 line1\n line2 line2\n \n }"
其中大括号之间的信息只是一个字符串块,以便以后进一步解析。我所能做到的最好的方法就是使用带有failOn属性的skipTo。你知道吗
line = SkipTo(LineEnd(), failOn=(LineStart()+LineEnd())|'}') + LineEnd().suppress()
nxos_clause = "with" + output_file + "{" + OneOrMore(line.setDebug()) + "}"
调试节目
Match {SkipTo:(LineEnd) Suppress:(LineEnd)} at loc 76(4,1)
Exception raised:Found expression {{LineStart LineEnd} | "}"} (at char 94), (line:4, col:19)
(1, 'failed parse:', 'Expected "}" (at char 77), (line:4, col:2)')
我想要的结果是
"{", "line1 line1", "line2 line2", "}"
我知道手工操作非常简单。我正在寻找建立一个更复杂的语法一旦我得到简单的东西工作。。。你知道吗
如果换行符很重要,则需要从默认空白字符的pyparsing集中删除它们。你知道吗
要抑制空行,请定义与空行匹配的表达式,然后在测试与可能包含内容的行匹配的表达式之前,对空行进行匹配和抑制:
另外,请注意,我们必须在
OneOrMore
中向前看,以免将右大括号作为有效的非空行处理。你知道吗现在分析整个输入行:
提供:
相关问题 更多 >
编程相关推荐