【发布时间】:2015-07-22 13:12:17
【问题描述】:
我正在编写我的第一个使用 pyparsing 的程序。
我想解析一个文件,其中以“\n”结尾的每一行都是一个标记。
请解释一下怎么做。
实际上,我需要解析 .lyx 文件。 .lyx 文件的一个示例:https://github.com/nicowilliams/lyx/blob/master/lib/examples/Braille.lyx
【问题讨论】:
-
请求的输出是什么?
-
@omri_saadon:在第一阶段,我只想将文件分成几行。 (标记是字符串。)之后(技巧!)我将使用 another 解析器解析每个标记。也就是我会先拆分成token,然后解析每个token。
-
主解析器使用那个(“另一个”)解析器来确定有趣的标记序列。 “另一个”解析器仅用于检查标记的属性,其余工作由主解析器完成
-
如果你的步骤真的很独立,那么我建议只使用 splitlines() 逐行分解初始字符串,然后将每个字符串传递给解析器,例如
for line in input_string.splitlines(): result = line_parser.parseString(line)你甚至可以使用sum 像这样将所有结果合并到一个结构中(注意在行解析器周围使用 Group 来单独维护每行的数据):all_results = sum(Group(line_parser).parseString(line) for line in input_string.splitlines())
标签: python parsing pyparsing lyx