问题描述
我们有很多来自供应商的列表,其中包含不同格式的产品数据,并且在每个列表中都有许多不同的方法来描述产品 一个简短的示例列表:
产品类型 | 说明 |
---|---|
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 (将#修改为@)