我应该如何在不为数据格式编写解析器的情况下继续解析彼此依赖的表格数据字段?

问题描述

我们有很多来自供应商的列表,其中包含不同格式的产品数据,并且在每个列表中都有许多不同的方法来描述产品 一个简短的示例列表:

产品类型 说明
A 11,3*3/3 蓝
A 11.5x4 黄木
B 特殊 11.5x4 黄木
B 规格 11,3*3/3 蓝色

您可以看到列表本身是非常异构的。 通常只有一列具有多种不同格式的描述。我们仅对该字段的内容创建并运行解析器,以将数据转换为结构化形式。 解析器通常以不同的可能变体开始:

product description: variant1|variant2....
variant1: dims color material?
variant2: spec dims color material
....

这些例子不是最好的,但我认为这足以理解我们的工作。 稍后我们可以轻松地从解析树中构建一个不错的列表,每个人都很高兴。

但是现在我们遇到了一些变体依赖于另一列中的另一个字段的问题。例如,我想添加一个这样的规则:

When value in Product Type =="A":
    variant1: dims color material? 

我想让它尽可能简单,不想添加太多逻辑。 我也不想每次都在这个简短的翻译文件中完全解析 csv/excel/tab_seperated/txt。我的一个想法是将每一行转换为由特定符号连接的长字符串,这样解析后的字符串将如下所示:

A my_special_field_seperator 11.5x4 yellow wood

然后用户只需要设置这个分隔符就可以像这样正常传递它:

variant1: "A" _sep dims color material? 

但这对我来说似乎真的很笨拙且容易出错,我想知道是否有更好的解决方案。 有一个更好的方法吗?我没有看到漂亮而优雅的解决方案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)