[問題] 動態歌詞

看板RegExp (正規表示式 Regular Expression)作者 (死城盜賊)時間13年前 (2012/02/18 10:54), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
使用語言:javascript [00:57.29][00:57.27]senbonsakura yoru ni magire 我想把上面這串切成[00:57.29],[00:57.27],senbonsakura yoru ni magire 可是我用/^(\[[0-9:.]*\])*([^\[\]].*)$/ 只能抓到[00:57.27],senbonsakura yoru ni magire 用()包起來不能match多次嗎? 因為前面的[]可能會不只兩個 不然的話就是抓\[.*\]然後再用split切了... -- 作者 adameva (陽光,夏天,七星潭) 看板 ask 標題 [問字] 請問有形容東西變大的單字嗎? 時間 Wed Jul 6 00:13:04 2011 ※ 發信站: 批踢踢實業坊(ptt.cc)

07/06 00:13,
踢打
07/06 00:13
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.96.70

02/18 15:34, , 1F
如果只是時間的部分長度不定 /(\[[\d:.]*\])|[^\[\]]*$/g
02/18 15:34, 1F

02/18 19:44, , 2F
split(/(?=\[|senbon)/) 完整分割字串還是split比較方便
02/18 19:44, 2F

02/18 21:41, , 3F
.match(/\[[^\]\[]+\]|[^\]\[]+$/g) match 我會這樣用0.0
02/18 21:41, 3F
謝謝樓上幾位朋友的回應! 時間部分是固定的 一定是[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)
文章代碼(AID): #1FFnC3xa (RegExp)
文章代碼(AID): #1FFnC3xa (RegExp)