【发布时间】:2013-09-26 13:37:03
【问题描述】:
我正在解析一个文件,其中包含基于时间的条目。格式如下:
00:02:10-XYZ:Count=10
00:04:50-LMK:Count=3
这里我想要的是从字符串行中提取时间值
我搜索了很多链接都找不到我想要的东西,最终我写了这段代码。
Pattern pattern = Pattern.compile("((?i)[0-9]{1,2}:??[0-9]{0,2}:??[0-9]{0,2})"); //(?i)[0-9]{1,2}:??[0-9]{0,2}:??[0-9]{0,2} //\\d{1,2}:\\d{1,2}:\\d{1,2}
Matcher matcher;
List<String> listMatches;
下面是我应用逻辑的循环
for(int x = 0; x < file_content.size(); x++)
{
matcher= pattern.matcher(file_content.get(x));
listMatches = new ArrayList<String>();
while(matcher.find())
{
listMatches.add(matcher.group(1));
break;
}
}
我希望当“matcher.find()”为 true 时,它会在第一次迭代中返回 [00:02:10],在第二次迭代中返回 [00:04:50]。
【问题讨论】:
-
您是否考虑过使用SimpleDateFormat 而不是自己编写正则表达式?
-
不,先生,我没有,感谢您分享有价值的代码