[問題] 去除括號

作者: gn00742754 (西門貓)   2012-11-14 11:21:40
我在JS使用正規表示式
原始字串:
{abd : [ {id:value},{name:value} , {id:value},{name:value} ]}
目標字串:
[ {id:value},{name:value} , {id:value},{name:value} ]
我用了
/((^[^[]*\:))|(}$)/
來取代
可是結果卻變成
[ {id:value},{name:value} , {id:value},{name:value} ] }
最後一個沒被去掉
但是我在正規表示式的測試網站卻是我想要的結果
不太明白為什麼JS下不成功><
作者: n6333373   2011-01-14 13:07:00
可能是原始字串中的}後面還有東西?http://i.minus.com/ib1JC3RUvZMUQd.png
作者: CindyLinz (Cindy Wang)   2011-01-14 18:01:00
你 regex 結尾的 / 後面要加一個 g 才會多次取代呀
作者: qwertmn (抽筋)   2011-01-14 22:15:00
字串單純的話..直接 \[.*\] 就抓的出來了看你寫的pattern 要匹配到 }結尾的前一個字元- 0\[.*(?=\}) 醬試試看../((^[^[]*\:))|(}$)/ 我看起來也和你的目標字串沒關係阿
作者: gn00742754 (西門貓)   2011-01-15 00:30:00
抱歉,剛學regex,還不是很熟,謝謝大家的幫助~
作者: kilva (嗡嗡)   2011-01-18 11:36:00
在{ a : b }中要取出b,正規表示式可以寫成/^\s*{.*?\:\s*(.*?)\s*}\s*$/"{a:b}".match(/^\s*{.*?\:\s*(.*?)\s*}\s*$/)[1] // b

Links booklink

Contact Us: admin [ a t ] ucptt.com