刚看了有关正则表达式的内容。不得不说,单纯的正则表达式还不够给力,因为是等价于乔姆斯基的第3型文法的(看这里)。
下面的是VS2008里面搜索时,用正则表达式匹配大括号的,没有递归的正则表达式太壮观了,Mark一下。
//1层:\{(([^\{\}])|(\n))*\}
//2层:\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\}//3层:\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\}
//1层或2层:(\{(([^\{\}])|(\n))*\})|(\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\})
//1层或2层或3层:((\{(([^\{\}])|(\n))*\})|(\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\})|(\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\{(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\}(([^\{\}])|(\n))*\}))