正則表達(dá)式應(yīng)用之提煉百度歌詞的實(shí)現(xiàn)代碼
更新時(shí)間:2011年06月23日 21:05:21 作者:
前幾天看了下百度音樂(lè)盒的功能,發(fā)現(xiàn)有歌詞功能,用正則匹配了下,需要的朋友可以參考下。

這里的歌詞一般都是LRC格式的,是有時(shí)間的,如果想用作文本沒(méi)有時(shí)間的話,文本里面的時(shí)間段就會(huì)成為了干擾障礙。
下面是一首歌的Lrc歌詞
復(fù)制代碼 代碼如下:
[ti:聽(tīng)說(shuō)]
[ar:劉若英]
[al:我的失敗與偉大]
[by:活在當(dāng)下]
[00:01.22]劉若英 - 聽(tīng)說(shuō)
[00:03.79]專輯名稱:聽(tīng)說(shuō)?
[00:06.73]作詞:葛大為 作曲:林健華
[00:09.74]
[00:10.79]lrc制作:卜超 QQ:6313827
[00:25.13]
[00:27.08]聽(tīng)說(shuō) 你身邊有新面孔
[00:32.04]聽(tīng)說(shuō) 你不再寂寞
[00:35.33]聽(tīng)說(shuō) 你提起我
[00:38.73]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[00:45.38]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[00:52.86]只能被聽(tīng)說(shuō) 安排著
[00:56.91]關(guān)于你我的 對(duì)的或錯(cuò)的
[00:60.00]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[01:06.18]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[01:10.24]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[01:13.31]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[01:19.56]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[01:24.80]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[01:45.82]
[01:47.83]聽(tīng)說(shuō) 我巷口你常經(jīng)過(guò)
[01:52.76]聽(tīng)說(shuō) 你厭倦寂寞
[01:56.10]聽(tīng)說(shuō) 你問(wèn)候我
[01:59.52]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[02:06.04]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[02:52.11][02:12.94]
[02:52.67][02:13.35]只能被聽(tīng)說(shuō) 安排著
[02:56.63][02:17.26]關(guān)于你我的 對(duì)的或錯(cuò)的
[02:59.77][02:20.32]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[03:06.11][02:26.48]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[03:10.07][02:30.56]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[03:13.10][02:33.62]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[03:19.31][02:39.88]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[03:24.58][02:45.12]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[03:33.66]
[03:36.56]聽(tīng)說(shuō) 我身邊有新面孔
[03:42.53]聽(tīng)說(shuō) 你祝福了我
[03:52.39]
[03:53.93]lrc制作:卜超 QQ:6313827
這里的時(shí)間段很有規(guī)律,一般以“[”開(kāi)頭以“]”結(jié)尾,有重復(fù)的時(shí)候就會(huì)出現(xiàn)兩段時(shí)間段。第一時(shí)間想到了正則表達(dá)式,于是就用正則表達(dá)式寫(xiě)了如下的程序
復(fù)制代碼 代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
<?php
$contents2 = "";
$filename = "html/tingshuo.lrc";
$contents = file_get_contents($filename);
echo nl2br($contents);
echo "<br /><br />";
preg_match_all("/\][^\[].*+/",$contents,$array);
$numArray = count($array[0]);
for($i = 0;$i<$numArray;$i++){
$contents2.=trim($array[0][$i],"\]");//去除左邊的“]”
$contents2.="<br />";
}
echo "<br /><h2>這是處理后的歌詞記錄</h2><br />";
echo $contents2;
echo "<br /><h2>這是未處理的歌詞記錄</h2><br />";
echo "<br />";
echo "<pre>";
print_r($array);
echo "</pre>";
?>
</body>
</html>
于是乎,終于看見(jiàn)一線完美的喜悅——
復(fù)制代碼 代碼如下:
[ti:聽(tīng)說(shuō)]
[ar:劉若英]
[al:我的失敗與偉大]
[by:活在當(dāng)下]
[00:01.22]劉若英 - 聽(tīng)說(shuō)
[00:03.79]專輯名稱:聽(tīng)說(shuō)?
[00:06.73]作詞:葛大為 作曲:林健華
[00:09.74]
[00:10.79]lrc制作:卜超 QQ:6313827
[00:25.13]
[00:27.08]聽(tīng)說(shuō) 你身邊有新面孔
[00:32.04]聽(tīng)說(shuō) 你不再寂寞
[00:35.33]聽(tīng)說(shuō) 你提起我
[00:38.73]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[00:45.38]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[00:52.86]只能被聽(tīng)說(shuō) 安排著
[00:56.91]關(guān)于你我的 對(duì)的或錯(cuò)的
[00:60.00]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[01:06.18]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[01:10.24]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[01:13.31]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[01:19.56]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[01:24.80]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[01:45.82]
[01:47.83]聽(tīng)說(shuō) 我巷口你常經(jīng)過(guò)
[01:52.76]聽(tīng)說(shuō) 你厭倦寂寞
[01:56.10]聽(tīng)說(shuō) 你問(wèn)候我
[01:59.52]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[02:06.04]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[02:52.11][02:12.94]
[02:52.67][02:13.35]只能被聽(tīng)說(shuō) 安排著
[02:56.63][02:17.26]關(guān)于你我的 對(duì)的或錯(cuò)的
[02:59.77][02:20.32]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[03:06.11][02:26.48]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[03:10.07][02:30.56]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[03:13.10][02:33.62]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[03:19.31][02:39.88]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[03:24.58][02:45.12]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[03:33.66]
[03:36.56]聽(tīng)說(shuō) 我身邊有新面孔
[03:42.53]聽(tīng)說(shuō) 你祝福了我
[03:52.39]
[03:53.93]lrc制作:卜超 QQ:6313827
這是處理后的歌詞記錄
劉若英 - 聽(tīng)說(shuō)
專輯名稱:聽(tīng)說(shuō)?
作詞:葛大為 作曲:林健華
lrc制作:卜超 QQ:6313827
聽(tīng)說(shuō) 你身邊有新面孔
聽(tīng)說(shuō) 你不再寂寞
聽(tīng)說(shuō) 你提起我
我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
只能被聽(tīng)說(shuō) 安排著
關(guān)于你我的 對(duì)的或錯(cuò)的
兩個(gè)人 曾經(jīng)相似的 卻以為都變了
只能靠聽(tīng)說(shuō) 各自愛(ài)著
不需要證明 當(dāng)時(shí)決定是錯(cuò)的
想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
聽(tīng)說(shuō) 我巷口你常經(jīng)過(guò)
聽(tīng)說(shuō) 你厭倦寂寞
聽(tīng)說(shuō) 你問(wèn)候我
我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
只能被聽(tīng)說(shuō) 安排著
關(guān)于你我的 對(duì)的或錯(cuò)的
兩個(gè)人 曾經(jīng)相似的 卻以為都變了
只能靠聽(tīng)說(shuō) 各自愛(ài)著
不需要證明 當(dāng)時(shí)決定是錯(cuò)的
想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
聽(tīng)說(shuō) 我身邊有新面孔
聽(tīng)說(shuō) 你祝福了我
lrc制作:卜超 QQ:6313827
這是未處理的歌詞記錄
Array
(
[0] => Array
(
[0] => ]
[1] => ]
[2] => ]
[3] => ]
[4] => ]劉若英 - 聽(tīng)說(shuō)
[5] => ]專輯名稱:聽(tīng)說(shuō)?
[6] => ]作詞:葛大為 作曲:林健華
[7] => ]
[8] => ]lrc制作:卜超 QQ:6313827
[9] => ]
[10] => ]聽(tīng)說(shuō) 你身邊有新面孔
[11] => ]聽(tīng)說(shuō) 你不再寂寞
[12] => ]聽(tīng)說(shuō) 你提起我
[13] => ]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[14] => ]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[15] => ]只能被聽(tīng)說(shuō) 安排著
[16] => ]關(guān)于你我的 對(duì)的或錯(cuò)的
[17] => ]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[18] => ]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[19] => ]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[20] => ]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[21] => ]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[22] => ]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[23] => ]
[24] => ]聽(tīng)說(shuō) 我巷口你常經(jīng)過(guò)
[25] => ]聽(tīng)說(shuō) 你厭倦寂寞
[26] => ]聽(tīng)說(shuō) 你問(wèn)候我
[27] => ]我過(guò)得不錯(cuò) 忙碌中還有感動(dòng)
[28] => ]嘗試愛(ài)過(guò)幾個(gè)人 面對(duì)愛(ài) 也誠(chéng)實(shí)許多
[29] => ]
[30] => ]只能被聽(tīng)說(shuō) 安排著
[31] => ]關(guān)于你我的 對(duì)的或錯(cuò)的
[32] => ]兩個(gè)人 曾經(jīng)相似的 卻以為都變了
[33] => ]只能靠聽(tīng)說(shuō) 各自愛(ài)著
[34] => ]不需要證明 當(dāng)時(shí)決定是錯(cuò)的
[35] => ]想著聯(lián)絡(luò) 不如心底遠(yuǎn)遠(yuǎn)問(wèn)候
[36] => ]最美麗 莫過(guò)于聽(tīng)說(shuō)你 還回憶
[37] => ]其實(shí)我也感激 當(dāng)我聽(tīng)說(shuō)你還相信愛(ài)情
[38] => ]
[39] => ]聽(tīng)說(shuō) 我身邊有新面孔
[40] => ]聽(tīng)說(shuō) 你祝福了我
[41] => ]
[42] => ]lrc制作:卜超 QQ:6313827
)
)
大功告成,正則表達(dá)式處理這類問(wèn)題真的很好用,若有對(duì)本問(wèn)更好的建議,歡迎留言
相關(guān)文章
專門(mén)為初學(xué)者編寫(xiě)的正則表達(dá)式入門(mén)教程
這是一篇翻譯文章。我學(xué)過(guò)很多次正則表達(dá)式,總是學(xué)了忘,忘了學(xué),一到用的時(shí)候還是只能靠搜索引擎2020-05-05
正則表達(dá)式Regular Expression (RegExp)詳解
正則表達(dá)式,又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達(dá)式、規(guī)則表達(dá)式、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫(xiě)為regex、regexp或RE2015-11-11
用正則表達(dá)式批量為a增加target=''''_blank''''新窗口打開(kāi)的方法
今天在制作模板的時(shí)候,發(fā)現(xiàn)一些頁(yè)面不是新窗口打開(kāi),有時(shí)候一些內(nèi)容新窗口打開(kāi)好些,本來(lái)打算手工替換的,發(fā)現(xiàn)了太多,還是正則比較方便一些2013-12-12

