[問題] 去除連續特定條件中的文字

看板RegExp作者 (ご注文はうさぎですか)時間10年前 (2014/05/28 19:17), 編輯推噓4(404)
留言8則, 5人參與, 最新討論串1/1
語言:javascript str = "1111(22)1111(333)111(4444)111"; str.replace(/\(.*\)/,''); 結果他這樣只會抓取最前面的 ( 跟最後面的 ) 把中間的都去掉 變成1111111 但是在下想要把中間的22 333 4444去掉而已 變成11111111111111 請問哪裡想錯了? -- 昔、とあるドSなひとは、ドMな人と出会った。   いつかふたりは恋して、Hなことをした。     それは──              S.H.M         シンプル.ハーモニック.モーション                      ──世界の一番美しいものであります。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.251.55 ※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1401275824.A.D04.html

05/28 19:32, , 1F
. 是貪心的, 它會抓到最長的字串
05/28 19:32, 1F

05/28 19:33, , 2F
用non-greedy,/\(.*?\)/
05/28 19:33, 2F

05/28 19:33, , 3F
呃, 我指的是 .*
05/28 19:33, 3F

05/28 19:33, , 4F
二樓的 non-greedy 是一解, 另解是改成 [^)]*
05/28 19:33, 4F

05/28 19:34, , 5F
個人比較偏好後者這個解法就是了
05/28 19:34, 5F

05/28 19:50, , 6F
後者效能比較好
05/28 19:50, 6F

05/28 20:21, , 7F
\([^\)]*\) 這樣應該比較快吧?
05/28 20:21, 7F

05/28 21:21, , 8F
太感謝了,沒想到?就可以解決,而且還有更好的解法
05/28 21:21, 8F
文章代碼(AID): #1JXSMmq4 (RegExp)