求一个嵌套的正则表达式
HTML代码如下
- HTML code
<div>{ id="a" /}</div><div>{ id="{ id="c" /}" /}</div>我需要依次匹配{ id="a" /}、{ id="c" /}、{ id="{ id="c" /}" /},当有嵌套的情况时,需从里到外匹配,匹配成功时可将内容替换成别的字符。
不知道表达得清不清楚,望各位不吝赐教~
[解决办法]
{((?<o>{)|(?<-o>})|.)*?(?(o)(?!))}
[解决办法]
递归方法
- C# code
private void getNesting(string src, Regex reg, List<string> list) { MatchCollection mc = reg.Matches(src); foreach (Match m in mc) { list.Add(m.Value); src = m.Value.Remove(m.Value.Length - 1, 1); if (reg.IsMatch(src)) { getNesting(src, reg, list); } } }