正则表达式获取字符串中指定标签的内容时会出现卡死现象
/// <summary>/// 获取标签内容
/// </summary>
/// <param name="htmlStr">需格式HTML</param>
/// <param name="className">样式名</param>
/// <param name="index">Groups索引</param>
/// <returns></returns>
public static string GetLable(string htmlStr, string className, int index)
{
htmlStr = htmlStr.Replace("\r\n", "").Replace("\n", ""); ;
string pattern = "<(?<HtmlTag>[\\w]+)[^>]*\\sclass=(?<Quote>[\"']?)" + className + "(?(Quote)\\k<Quote>)[\"']?[^>]*>(((?<Nested><\\k<HtmlTag>[^>]*>)|</\\k<HtmlTag>>(?<-Nested>)|.*?)*)</\\k<HtmlTag>>";
var match = Regex.Match(htmlStr, pattern);
if (match.Success)
{
return match.Groups[index].ToString();
}
else
{
return string.Empty;
}
用这个方法获取字符串中指定标签的内容,执行的时候cpu一致占用着,没有释放,感觉这个正则写的有问题,死循环了。谁有好的。 --------------------编程问答-------------------- 你不如直接说明你要匹配什么
这个正则看着太蛋疼了 --------------------编程问答-------------------- 应该是正则写的有问题
你要取标签里的东西 如果比较简单的话 可以使用这种方法 参考 C# 利用WebBrowser获取网页信息--代码三人帮
补充:.NET技术 , C#