private static string clearFulltag(string html)//去除成對(duì)標(biāo)簽 { string patt = @"<([a-zA-Z0-9]+)(\s*([a-zA-Z]+)\s*=\s*([""'])[\s\S]*?\4|\s+([a-zA-Z]+)\s*=\s*\S*)*?\s*>([\s\S]*?)</\1\s*>"; Console.WriteLine(Regex.CacheSize); if (Regex.IsMatch(html, patt)) { MatchCollection mc = Regex.Matches(html, patt); int count = mc.Count; for (int i = 0; i < count; i++) { html = html.Replace(mc[i].Value, mc[i].Groups[6].Value); } html = clearFulltag(html); } return html; }問(wèn)題 在進(jìn)入 13后 遞歸該函數(shù) 執(zhí)行到 5 的時(shí)候卡死 是啥原因??? 調(diào)試也不報(bào)錯(cuò) 一直卡在那 等了 幾個(gè)小時(shí) 還是沒(méi)反應(yīng)! 參數(shù)html不大 才 1000多字節(jié)
2 回答

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
可能沒(méi)替換掉,死循環(huán)了。 不過(guò)也可以這么寫: if (Regex.IsMatch(html, patt)){
return clearFulltag(Regex.Replace(html,patt ,"$6"));
} return html;

慕慕森
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
這個(gè)方法因該是不對(duì)的。
html.Replace(mc[i].Value, mc[i].Groups[6].Value);樓主檢查下,應(yīng)該是沒(méi)替換直接進(jìn)入死循環(huán)里。
- 2 回答
- 0 關(guān)注
- 1086 瀏覽
添加回答
舉報(bào)
0/150
提交
取消