正则表达式括号嵌套匹配

比如说这一个式子(1+2)(1+(1+2)),我想拿到里面的"1+2"和"1+(1+2)",怎么做?当左边括号里和右边括号里的括号数量无限多(都是成对的括号),我也要取到左边括号和右边括号里的字符串。
扬帆大鱼
浏览 290回答 2
2回答

四季花海

//这个正则假设字符串最外层包含&只包含左右两对括号//除此之外没有其他内容(两对括号里面可以有任意内容,包括括号)varreg=/^\(([^()]*(\(.*\))*[^()]*)*\)\(([^()]*(\(.*\))*[^()]*)*\)$/;//test1vars='(1+2)(1+(1+2))';varmatch=s.match(reg);console.log(match[1]);//1+2console.log(match[3]);//1+(1+2)//test2s='(1+2)((1+2)(3+4))';match=s.match(reg);console.log(match[1]);//1+2console.log(match[3]);//(1+2)(3+4)

GCT1015

varstr='(1+2)(1+(1+2))',i=-1,len=str.length,stack=0,start=0,result=[];while(++i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript