您的位置:首页 > 编程语言 > Java开发

java正则表达式练习之分析lrc文件

2012-11-06 09:44 351 查看
[ar:方力申]

[ti:好心好报]

[by:酷狗音乐倾心制作]

[00:00.00]领袖音乐分享平台 http://www.kugou.com 
[00:16.68]落力为你好 得不到分数

[00:20.56]你决定要跟他日后同步

[00:24.43]他不懂爱惜你 我乐意操劳

[00:31.74]还看着你 看你在悬崖走路

[00:36.24]他却放下你 只照顾自己

[00:40.18]我这片苦心无人赞美

[00:43.93]还不敢开口 不能妒忌

[00:47.06]对你好 无人稀罕我好

[00:50.81]无人欣赏我好

[00:52.50]原来你习惯他一套

[00:55.37]从来没有爱我 看得清楚 我知道

[00:58.94]不必得到 不妨陪衬 但愿为你好

[01:03.81]好 明明比他更好 旁人都知我好

[01:08.56]为何你又与他拥抱 来磨练我

[01:12.50]我信 有好心得好报

[01:15.25]好人 似我问谁做到

[01:25.50]是受罪也好 听听你哭诉

[01:29.37]你说难过总比分手更好

[01:32.87]你说几多的女主角 也受过煎熬

[01:40.68]情况坏到 你信任来年一日

[01:45.12]他答应做到 统统都做到

[01:49.06]我也似你的无从劝告

[01:52.87]宁愿牺牲都不愿却步

[01:55.87]对你好 无人稀罕我好

[01:59.62]无人欣赏我好

[02:01.69]原来你习惯他一套

[02:04.12]从来没有爱我 看得清楚 我知道

[02:08.69]不必得到 不妨陪衬 但愿为你好

[02:12.56]好 明明比他更好 旁人都知我好

[02:17.50]为何你又与他拥抱 来磨练我

[02:21.25]我信 有好心得好报

[02:24.00]虽然 这秒时辰未到

[02:41.50]我太好 无人珍惜我好

[02:44.87]无人喜欢我好

[02:46.94]原来要学会他一套

[02:49.37]从来没有吻过 记得清楚 我知道

[02:53.94]不必得到 不妨陪衬 但愿为你好

[02:57.87]好 明明比他更好 旁人都知我好

[03:02.63]无人爱慕我忍得到

[03:05.13]仍然相信 我会有天终于等到

[03:09.25]可能 你有日会知道

[03:19.18]领袖音乐分享平台 http://www.kugou.com


例如有以上歌词文件,现在要截取带时间的行的歌词。其代码可实现如下。

BufferedReader br;

//获取文件
File file = new File(Environment.getExternalStorageDirectory() + "/test.lrc");

//输入流,如果中文乱码注意后边的编码格式。

InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GB2312");
//有此方法方便每次读取一行

br = new BufferedReader(isr);
String line = br.readLine();
//去掉开头结尾空格

line.trim();
//匹配前面为"[dd:dd.dd]***"格式的行,下面\\d表示数字,{2}表示有2个

Pattern pattern = Pattern.compile("(\\[\\d{2}+\\:\\d{2}\\.\\d{2}\\])(.*)");

Matcher matcher = pattern.matcher(line);

if(matcher.find()) {

//记住分组时从左边第一个左半小括号算起,一个小括号代表一组。这里获取歌词部分因此为2,若要获取时间,此处为1.

System.out.println(matcher.group(2));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: