求正则表达式,除了最上层的 逗号

求正则表达式,去除最上层的 逗号
本帖最后由 FeJerry 于 2013-10-31 16:10:03 编辑



name = "fdfd",
f_e={
a="fe",
b="ss",
"ss",
[1]=33,
ss={a="s" ,b="ss" ,s={},e="ss"     }
},
fse={
a={af=""},
b={34=344},

"ss",
[1]=33,
ss={a="s" ,b="ss" ,s={},
fasdf="s"     }
},
ffe={
a="f{e",
b="s}s",
"ss",
[1]=33,
ss={a="s" ,b="ss" ,s={}     }
}





如图
求正则表达式,除了最上层的 逗号

去除的是最上层的逗号, 我写到这个 ".+=\s*\{[^\{\}]*(((?'Open'\{)[^\{\}]*)+((?'-Open'\})[^\{\}]*)+)*(?(Open)(?!))\}


------解决方案--------------------
提醒:解决字符串过滤问题时,正则表达式不是万能的;而有限状态自动机是万能的。

参考《编译原理》中的词法分析和有限状态自动机。

------解决方案--------------------
\w+\s*=\s*(?:{((?<o>{)
------解决方案--------------------
(?<-o>)}
------解决方案--------------------
[^{}]+)*(?(o)(?!))}
------解决方案--------------------
"\w+")