2.2.1
我是 PyParsing 的新手。我在 Ubuntu 20.04 上使用 Python 3.12 并使用 pip install 安装 PyParsing
我有 2 个不同的结果(1 中的一个例外),并且 2 个不同的文本中也没有例外。 我已启用 setName 和诊断消息。我的问题是,两篇文章相似,但结果不同。 任何解决此问题的帮助将不胜感激
对于文本 2,不会引发异常 这是我的代码
prasnaS.setName("prasna")
parser = englishPreface +invocation +titleLine+pp.ZeroOrMore(EmptyLine)+pp.OneOrMore(prasnaS)+EmptyLine
result =parser.parse_string(text)
文字1
Match prasna at loc 155535(2247,2)
^
Match prasna failed, ParseException raised: Expected prasna, found end of text (at char 155535), (line:2247, col:2)
Exception <traceback object at 0x7f53a00739c0>
Traceback (most recent call last):
File "//home/xxxxx/projects/aksr/doc2txt.py", line 158, in <module>
result =parser.parse_string(text)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "//home/xxxxx/projects/aksr/myenv1/lib/python3.12/site-packages/pyparsing/core.py", line 1197, in parse_string
raise exc.with_traceback(None)
pyparsing.exceptions.ParseException: , found end of text (at char 155535), (line:2247, col:2)
文字2:
Match prasna at loc 179582(1977,1)
^
Match prasna failed, ParseException raised: , found end of text (at char 179585), (line:1980, col:1)
我最终删除了 EmptyLine 并且它起作用了。 现在解析器看起来像
parser = englishPreface +invocation +titleLine+pp.ZeroOrMore(EmptyLine)+pp.OneOrMore(prasnaS)
我仍然无法理解为什么,希望得到任何解释