作者gn00742754 (西门猫)
看板RegExp
标题[问题] 去除括号
时间Wed Nov 14 11:21:40 2012
我在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下不成功><
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.68.117
1F:→ n6333373:可能是原始字串中的}後面还有东西? 11/14 13:07
3F:推 CindyLinz:你 regex 结尾的 / 後面要加一个 g 才会多次取代呀 11/14 18:01
4F:→ qwertmn:字串单纯的话..直接 \[.*\] 就抓的出来了 11/14 22:15
5F:→ qwertmn:看你写的pattern 要匹配到 }结尾的前一个字元- 0 11/14 22:16
6F:→ qwertmn:\[.*(?=\}) 酱试试看.. 11/14 22:17
7F:→ qwertmn:/((^[^[]*\:))|(}$)/ 我看起来也和你的目标字串没关系阿 11/14 22:20
8F:→ gn00742754:抱歉,刚学regex,还不是很熟,谢谢大家的帮助~ 11/15 00:30
9F:→ kilva:在{ a : b }中要取出b,正规表示式可以写成 11/18 11:36
10F:→ kilva:/^\s*{.*?\:\s*(.*?)\s*}\s*$/ 11/18 11:37
11F:→ kilva:"{a:b}".match(/^\s*{.*?\:\s*(.*?)\s*}\s*$/)[1] // b 11/18 11:37