数据应该是这样的:
Some junk data
More junk data
1. fairly long key, all on one line
value: some other text with spaces and stuff
2. hey look! another long key. still on one line
value: a different value with some different information
每个文件有几个,通常在二十到三十之间。键值对的总数超过 20,000,这意味着手动更正每个文件是不可选择的。每个键前面的数字应该正确增加。值和以下键之间应该有一个换行符。每个值都应以字符串“value:”开头
现在,我逐行将每一行分类为键、值或垃圾。然后我从键中解析出数字并将数字、键和值存储在一个对象中。
当数据格式不正确时会出现问题。以下是我迄今为止遇到的一些问题:
- 键和值之间没有换行符。
- 键或值中间出现意外换行,导致程序将每个键或值的一部分视为垃圾数据。
- “价值”一词拼写错误。
我通过计算每行前六个字符与主字符串“value:”之间的 Levenstein 距离来处理第三种情况。如何解决其他两个问题?
如果重要的话,解析是在 node.js 服务器上进行的,但是如果他们可以更轻松地处理这些不一致的数据,我愿意接受其他语言。