Javascript 解析不一致数据
数据应该是这样的:Javascript 解析不一致数据,javascript,regex,node.js,parsing,Javascript,Regex,Node.js,Parsing,数据应该是这样的: 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到30之间
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到30之间。键值对的总数超过20000,这意味着手动更正每个文件是不可取的。每个键前面的数字应该正确递增。在一个值和下面的键之间应该有一条换行符。每个值都应以字符串“value:”开头
现在,我一行一行地将每一行分类为键、值或垃圾。然后,我将数字从键中解析出来,并将数字、键和值存储在一个对象中
数据格式不正确时会出现问题。以下是我迄今为止遇到的几个问题:
- 键和值之间没有换行符
- 键或值中间的一个意外的换行符,导致程序将每个键或值的一部分视为垃圾数据。
- “值”一词拼写错误
^(\d+)\?(.+?)(?:值| vlaue | balue | valie):?(.+?)[\n\r]{2,}
此处解释演示:
如果您解决了“拼写错误的值”问题,您可以将其简化为:^(\d+)\?(.+?)值:?(.+?)[\n\r]{2,}
否则,在该正则表达式部分添加与|
相同数量的拼写错误
为了让它发挥作用,我迷上了:
- 行必须以数字和带可选空格的点开头
是键
之后和id
值之前的所有内容
在至少两次换行后结束值
您还应该删除正确的条目,然后重新检查该文件以检查是否缺少任何其他内容。这很有效,谢谢!我想“value”的拼写错误是很少见的,所以每次出现时我都可以修改它。