【发布时间】:2019-02-01 13:56:03
【问题描述】:
我正在读取一个文件,其中每一行都包含正确的匹配项,我只想提取数据。我使用以下正则表达式"\"ms_played\":\\s\"(\\d*)\"" 得到"somedata", "ms_played": "0815", "somedata"。
我尝试了多个正则表达式在线测试,每个测试都找到匹配项,但我的代码没有。
long timeplayed = 0;
Pattern endTimePattern = Pattern.compile("\"ms_played\":\\s\"(\\d*)\"");
try (BufferedReader br = new BufferedReader(new FileReader("EndSong_.json"))) {
String line = null;
br.readLine();
while ((line = br.readLine()) != null) {
String endtime = endTimePattern.matcher(line).group(1);
timeplayed += Long.parseLong(endtime);
}
}
我的预期结果是提取包含 int 值的匹配器组 1。 我对 Java 端正则表达式比较陌生,如果有人能提供帮助,我将不胜感激。
【问题讨论】: