我正在尝试使用 PyParser 解析一些文本。问题是我的名字可以包含空格。所以我的输入可能看起来像这样。首先是名单:
Joe
bob
Jimmy X
grjiaer-rreaijgr Y
然后,他们做的事情:
Joe A
bob B
Jimmy X C
问题当然是他们所做的事情可能与名称的结尾相同:
Jimmy X X
grjiaer-rreaijgr Y Y
如何为动作线创建解析器?解析的输出Joe A
应该是[Joe, A]
. 解析的输出Jimmy X C
应该[Jimmy X, C]
是Jimmy X X
- [Jimmy X, X]
。也就是[name, action]
对。
如果我天真地创建我的名称解析器,意思是类似的东西OneOrMore(RegEx("\S*"))
,那么它将匹配整行,给我[Jimmy X X]
一个解析错误,因为没有看到一个动作(因为它已经被名称解析器消耗了)。
注意:很抱歉之前的措辞模棱两可,这看起来像是一个 NLP 问题。