得用平衡组了
Regex re = new Regex("(?is)<div class=\"info\">[^<>]*(((?'TAG'<div[^>]*>)[^<>]*)+((?'-TAG'</div>)[^<>]*)+)*(?(TAG)(?!))</div>", RegexOptions.None);
MatchCollection mc = re.Matches("text");
foreach (Match ma in mc)
{
}
上面的做法并不全对,因为在用的排除式[^<>]*会除去所有含有其它非div标签的div对,所以得到的结果并不满意
在此基础上修改得到:
<div class="info">((?!</?div[^>]*>).|\n)*(((?'TAG'<div[^>]*>)((?!</?div[^>]*>).|\n)*)+((?'-TAG'</div>)((?!</?div[^>]*>).|\n)*)+)*(?(TAG)(?!))</div>
本文详细阐述了一种改进的div标签匹配正则表达式,旨在解决原始表达式去除所有含有其他非div标签的div对的问题,提供更准确的匹配结果。

1706

被折叠的 条评论
为什么被折叠?



