【发布时间】:2012-12-25 09:43:06
【问题描述】:
我有这种形式的样本数据:
{
ID:2
Type:None
Reference1:6369-545.1
Reference2:6369-545.2
Name:"John Smith Abbott"
Extra:""
},
{
ID:3
Type:None
Reference1:7854-568.1
Reference2:6369-545.2
Name:"Dave St. Ledger"
Extra:""
},
{
ID:4
Type:None
Reference1:8765-177.1
Reference2:6369-545.2
Name:"Martha Stone"
Extra:""
},
{
ID:6
Type:None
Reference1:9856-487.1
Reference2:6369-545.2
Name:"Peter O'Neill"
Extra:""
},
还有很多记录,但我只放了一个小样本,并更改了一些名称。
在我看来,这是非常糟糕的格式。它与 java 中的 JSON 解析器不兼容,因为这些字段没有被双引号括起来,而且我无法进行大规模查找/替换。
此外,每条记录的结尾不是用逗号分隔的,所以虽然我可以将每条记录放入String[],但我无法将它们进一步分开。见这里:
ID:2 Type:None Reference1:6369-545.1 Reference2:6369-545.2 Name:"John Smith Abbott" Extra:""}
通常我会用空格split(),但由于人名中有空格,所以不能这样做。
我在}, 上进行了大规模查找/替换以替换为};,就像我上面所说的那样,我能够分离出每条记录,但随后就无法再进一步了。我想我可能需要对这些数据进行更多的查找/替换操作以使其可用。理想情况下,我希望能够在每行数据的末尾添加一个comma,而无需在现有的}, 和{ 行中添加一个。
最终目标是将这些数据插入到数据库中。 它的原始文本及其格式。我无法更改源以重新格式化它,但我可以对这些数据做任何我想做的事情,因为它在一个大文本文件中。
【问题讨论】:
-
这似乎很适合语法,但不是你用两句话解释的。
-
是每条记录都单独一行,还是为了可读性而这样做?
-
是的,每条记录都在自己的行中。以上是从Notepad++直接复制粘贴。
标签: java string string-matching