看板 RegExp 關於我們 聯絡資訊
語言是 javascript 假設資料如下 (a) (b)(c) (d)(e)(f) 括號內的都是想擷取的資料 但分成三筆來擷取 第一筆的 a 會放在 group 1 第二筆的 b c 會分別放在 group 1 跟 group 2 第三筆的 d e f 會分別放在 group 1 跟 group 2 跟 group 3 目前的解法很醜,就是同個規則不斷重複加上去,直到重複次數可以滿足需求為止 \((\w)\)(?:\((\w)\))?(?:\((\w)\))? 想請問是否有除此之外更好的方法? 試過 \((\w)\)(?:\((\w)\)){0,3},在 d e f 的情況下不合要求 -- 「看在上帝的份上,我們不能當著孩子的面槍殺他的父親!」 「那我們就連孩子一起幹掉!」 「第一槍打中的是那個天真的孩子,第二槍是抱著孩子的母親。第三槍 停頓了三秒,當難以致信的父親擦拭著臉上愛子的腦漿從震驚中醒轉 過來,慢慢的轉頭看向停車的地方,分辨出是誰在攻擊他後,第三顆 子彈才將他的腦殼打飛。」 ─摘自〈狼群〉 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.121.187.47 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1544805801.A.F82.html ※ 編輯: art1 (122.121.187.47), 12/15/2018 00:43:30
x246libra: 可以給一些測試例子嗎? 看不太懂你想抓什麼類型的資料 12/16 10:05
x246libra: 沒事 我看懂了 思考中 12/16 10:08
x246libra: 恩 我想不到xd 12/16 10:50
art1: 要另外寫程式碼處理更麻煩了,這樣的話寧願醜一點 12/17 00:29
asglay: 直接使用\w, 然後抓每次match而不是每個group 01/30 12:26
Gold740716: 你可以用 g flag 06/26 23:47
Gold740716: /\((\w)\)/g 06/26 23:49