推 ahw12000:踢打07/06 00:13
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.123.96.70
推 No:如果只是時間的部分長度不定 /(\[[\d:.]*\])|[^\[\]]*$/g 02/18 15:34
推 qwertmn:split(/(?=\[|senbon)/) 完整分割字串還是split比較方便 02/18 19:44
→ qwertmn:.match(/\[[^\]\[]+\]|[^\]\[]+$/g) match 我會這樣用0.0 02/18 21:41
謝謝樓上幾位朋友的回應!
時間部分是固定的 一定是[mm:ss.aaa] a=毫秒
但是時間標籤確可能不只一個 例如下面的範例
[00:46.55]不是每一次的演唱
[00:50.15]就可以淡忘明天沒有你
[00:54.01]In my heart we'll never be apart
[01:00.57][02:06.27]殘留手上的香味提醒我
[01:04.58][02:09.64]在數位相機裡 留下的承諾
[01:08.50][02:13.40]每一封簡訊 傳出的思念 都對你說
[01:15.55][02:20.22][02:52.79]?? means I love you
另外就是因為我是要把整個lrc檔案都讀完存進陣列裡
所以後面歌詞部分是不定的 不是說抓senbon就OK
當然其實這個用split硬切就沒問題了 格式都蠻固定的
但還是想用regexp試試看
※ 編輯: s25g5d4 來自: 122.123.96.70 (02/18 22:40)
我在說清楚一點好了 因為我想用網頁製作一個播放器
同時也可以顯示歌詞 而且這個歌詞可以採用通用的動態歌詞 (*.lrc檔)
所以我需要一個parser將動態歌詞轉換為陣列以供讀取
理想是產生
[
{
"time":
[
{
"min":mm,
"sec":ss,
"ms" :aa
}
]
"lyric":"lyrics"
},
{
"time":
[
{
"min":mm,
"sec":ss,
"ms" :aa
},
{
"min":mm,
"sec":ss,
"ms" :aa
}
]
"lyric":"lyrics"
},
.
.
.
]
當然 實際陣列絕對不可能這麼複雜 效能會減損
這個舉例只是比較好理解而已
※ 編輯: s25g5d4 來自: 122.123.96.70 (02/18 23:49)
※ 編輯: s25g5d4 來自: 122.123.96.70 (02/18 23:49)