使用ActionScript3正则表达式分析LRC歌词
来源:互联网 发布:单片机怎样控制继电器 编辑:程序博客网 时间:2024/05/01 14:23
这几天CSDN的通栏广告放着正则表达式培训的广告。正则表达式这玩意很有意思,在AS3中,也新增了正则表达式。正则表达式描述用于查找和处理字符串中的匹配文本的模式。正则表达式类似于字符串,但是可以包含特殊代码以描述模式和重复。切记,不同的编程环境实现正则表达式的方式也不同,所以,从别的地方看过来的正则表达式在AS3中未必合用。
具体的正则表达式语法规则请查看帮助文档。在网络上没看到过AS3正则表达式写的LRC歌词分析程序,下面,就给出一段使用正则表达式来分析LRC格式歌词的程序。
function lrc(str:String):void
...{
var results:Array;
results = str.match(/[ar:(.+)]/i);
var ar:String = results ? results[1] : '';
results = str.match(/[ti:(.+)]/i);
var ti:String = results ? results[1] : '';
results = str.match(/[al:(.+)]/i);
var al:String = results ? results[1] : '';
results = str.match(/[by:(.+)]/i);
var by:String = results ? results[1] : '';
results = str.match(/[offset:(.+)]/i);
var offset:int = results ? int(results[1]) : 0;
results = str.match(/[d+:.+][^[ ]*/ig);
if (!results)
...{
results = str.match(/[d+:.+][^[ ]*/ig);
}
if (!results)
...{
return;
}
var gc:Array = new Array();
for (var i:int = 0; i < results.length; i++)
...{
var ln:String = results[i];
var tm:String = ln.match(/[(.+)].*/)[1];
var wd:String = ln.match(/.+](.*)/)[1];
var ts:Array = tm.split('][');
for each (var t:String in ts)
...{
var c:Array = t.split(':');
gc.push(...{time:int((c[0]*60+c[1])*1000), word:wd});
}
}
gc.sortOn("time", Array.NUMERIC);
for each (var g:Object in gc)
...{
trace('时间:',g.time, '毫秒,歌词:', g.word);
}
}
...{
var results:Array;
results = str.match(/[ar:(.+)]/i);
var ar:String = results ? results[1] : '';
results = str.match(/[ti:(.+)]/i);
var ti:String = results ? results[1] : '';
results = str.match(/[al:(.+)]/i);
var al:String = results ? results[1] : '';
results = str.match(/[by:(.+)]/i);
var by:String = results ? results[1] : '';
results = str.match(/[offset:(.+)]/i);
var offset:int = results ? int(results[1]) : 0;
results = str.match(/[d+:.+][^[ ]*/ig);
if (!results)
...{
results = str.match(/[d+:.+][^[ ]*/ig);
}
if (!results)
...{
return;
}
var gc:Array = new Array();
for (var i:int = 0; i < results.length; i++)
...{
var ln:String = results[i];
var tm:String = ln.match(/[(.+)].*/)[1];
var wd:String = ln.match(/.+](.*)/)[1];
var ts:Array = tm.split('][');
for each (var t:String in ts)
...{
var c:Array = t.split(':');
gc.push(...{time:int((c[0]*60+c[1])*1000), word:wd});
}
}
gc.sortOn("time", Array.NUMERIC);
for each (var g:Object in gc)
...{
trace('时间:',g.time, '毫秒,歌词:', g.word);
}
}
- 使用ActionScript3正则表达式分析LRC歌词
- VC中使用SCRIPT 正则写的LRC歌词分析类
- VC中使用SCRIPT 正则写的LRC歌词分析类
- LRC歌词分析函数
- LRC歌词分析函数
- 正则表达式练习: android 歌词解析lrc 转 txt 代码
- lrc歌词解析(正则表达式)与歌词卡拉ok显示的思路
- C++ 分析歌词(LRC)文件
- java正则表达式练习之分析lrc文件
- LRC歌词分析函数增强版
- LRC歌词
- VB2005使用类实现LRC歌词同步
- 使用vim制作lrc歌词文件 [原创]
- lkmusic项目之(三)LRC歌词解析--正则解析
- LRC歌词制作LRC歌词制作
- java中用正则表达式解析LRC文件
- java中用正则表达式解析LRC文件
- java中用正则表达式解析LRC文件
- ASP调试环境与方法
- eclipse3.1.1汉化全过程
- 单幅影像生成三维信息的软件SilverEye
- VB日记
- COM学习散记(2) DLL例子
- 使用ActionScript3正则表达式分析LRC歌词
- fgdfg
- Oracle锁简单介绍
- Lua学习笔记五--真正的入门:编写Lua扩展库
- common utility
- 学习 开源 3D gis软件 --Virtual Terrain Project
- ipv6设置
- 音频视频格式大全
- 我常用的myeclipse快捷键