【发布时间】:2017-04-05 17:31:59
【问题描述】:
我想使用 java 的正则表达式将文本文件写入 json 文件。
意思是我想要一个包含这个的文本文件:
5.2 你好
第 1 句。第 2 句。
变成这样:
{"Chapter": "5.2",
"Title": "Hello",
"Text": "Sentence 1. Sentence 2."}
我有一些代码可以匹配我的文本文件中的某些字段并将其输出到 json,但是我不确定如何使用正则表达式将 json 分解为我需要的部分。
我正在尝试这个:
Pattern p = Pattern.compile((\d\.\d)(.*?)(?=\d\.\d|$));
Matcher m = p.matcher(readFile(text));
while(m.find()) {
obj.put("Chapter", m.group());
System.out.println(obj);}
但这只会输出章节字段,然后是其余的文本。我不确定如何将这些数据拆分为章节、标题和文本字段。
输入:
5.2 你好
第 1 句。第 2 句。
当前输出为:
{"Chapter": "5.2 Hello Sentence 1. Sentence 2."}
但我需要它是这样的:
{"Chapter": "5.2",
"Title": "Hello",
"Text": "Sentence 1. Sentence 2."}
有什么帮助吗?
【问题讨论】:
-
您能否提供一个更清晰的输入和输出示例?是否有连续的章节适合一个 json 对象?
-
@horcrux 我在具体的输入输出中添加了
-
@Alexander Farber 多余的逗号是一个错误,我将其编辑了。我将如何使用 Gson 进行解析?我认为正则表达式是最好的方法
-
@Alexander Farber 谢谢!