将此调试代码添加到您的程序中:
firstLine.setName("firstLine").setDebug()
line.setName("line").setDebug()
secondLine.setName("secondLine").setDebug()
并将 searchString 更改为 parseString。setDebug() 将在每次尝试匹配表达式时打印出来,如果匹配,则匹配什么,如果不匹配,则异常。使用您的程序,在进行这些更改后,我得到:
Match firstLine at loc 0(1,1)
Matched firstLine -> ['ABC', '.... ']
Match line at loc 11(3,1)
Matched line -> ['DEF ']
Match line at loc 15(3,1)
Exception raised:Expected line (at char 17), (line:4, col:2)
Match secondLine at loc 15(3,1)
Exception raised:Expected "DEF" (at char 16), (line:4, col:1)
Traceback (most recent call last):
File "rrrr.py", line 19, in <module>
test.parseString(myText)
File "C:\Python25\lib\site-packages\pyparsing-1.5.5-py...
raise exc
pyparsing.ParseException: Expected "DEF" (at char 16), (line:4, col:1)
可能不是你所期望的。