正则表达式获取字符串中指定标签的内容时会出现卡死现象
/// <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一致占用着,没有释放,感觉这个正则写的有问题,死循环了。谁有好的。