我想解析一些文本使用PyParser。问题是我有可以包含空格的名称。所以我的输入可能看起来像这样。首先,名称的列表:pyparsing歧义
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问题。
是名称总是大写,而且是动词总是小写? – FMc 2010-06-05 21:53:25
不可以,名字可以有任何字母数字的东西。一个名字甚至可以是“吉米富裕决定的”,所以该行会显示“吉米富富决定决定吃饭。“ – Claudiu 2010-06-05 22:15:19
我非常需要名字的非贪婪匹配 – Claudiu 2010-06-05 22:16:24