作者KawasumiMai (ご注文はうさぎですか)
看板RegExp
标题[问题] 去除连续特定条件中的文字
时间Wed May 28 19:17:01 2014
语言: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://webptt.com/cn.aspx?n=bbs/RegExp/M.1401275824.A.D04.html
1F:推 LPH66:. 是贪心的, 它会抓到最长的字串 05/28 19:32
2F:推 mars90226:用non-greedy,/\(.*?\)/ 05/28 19:33
3F:→ LPH66:呃, 我指的是 .* 05/28 19:33
4F:→ LPH66:二楼的 non-greedy 是一解, 另解是改成 [^)]* 05/28 19:33
5F:→ LPH66:个人比较偏好後者这个解法就是了 05/28 19:34
6F:推 s25g5d4:後者效能比较好 05/28 19:50
7F:推 lin1987www:\([^\)]*\) 这样应该比较快吧? 05/28 20:21
8F:→ KawasumiMai:太感谢了,没想到?就可以解决,而且还有更好的解法 05/28 21:21