Ruby中的语法解析

时间:2015-07-11 17:31:31

标签: ruby regex parsing grammar

我面前有一项任务,它依赖于解释文本的结构 - 确切地说,是单语词典。字典有相当复杂的条目:最多29个独特元素,有些嵌套在其他元素中。我正在为字典设计自己的XML模式,但我想编写一个程序来解析我自动生成的纯文本。

我有一些Ruby的基本技能,而且我是一个相当有经验的RegEx用户,但我认为创建大量 if -trees和极长的RegEx公式可能不是最好的主意。我已经找到了一些关于解析表达式语法,Backus Normal Form和W-grammar的信息,但它们看起来有些含糊不清。

我的问题是:这是解释用自然语言编写的文本的结构的最佳方法吗?我不想解释语言本身,而是根据所使用的字符和关键字以及它们的邻域将每个条目划分为多个部分。你会建议什么宝石和资源?

编辑here's an example来自字典的简单条目(波兰文)。我想要做的是标记每个元素(感官,解释,搭配,标签标记等)。正如您所看到的,我正在寻找一种以树状形式包含大量案例的有效方法。 另一个问题是我希望有大量的捕获,因为我想将XML中的段从大到小标记。

1 个答案:

答案 0 :(得分:1)

这看起来像是一个非常适合Treetop的问题。我不认为我有足够的信息来确保它能够正常工作,但能够将正则表达式组合成一个更大的结构,其中29个元素中的每一个都可以被管理,并且使用任何Ruby提取/表示它们的信息# 39;适当的功能,似乎是你需要的功能集。