public static int[] GetImagePos(string str) { str = str.Replace("$", " "); str = Regex.Replace(str, @"(?!<img.+?>)<.+?>", ""); str = Regex.Replace(str, @"<img\b[^>]*>", "$"); int startPos = 0; int foundPos = -1; int count = 0; List<int> foundItems = new List<int>(); do { foundPos = str.IndexOf("$", startPos); if (foundPos > -1) { startPos = foundPos + 1; count++; foundItems.Add(foundPos); } } while (foundPos > -1 && startPos < str.Length); return ((int[])foundItems.ToArray()); }
/// <summary> /// 獲取Img的路徑 /// </summary> /// <param name="htmlText">Html字符串文本</param> /// <returns>以數組形式返回圖片路徑</returns> public static string[] GetHtmlImageUrlList(string htmlText) { Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase); //新建一個matches的MatchCollection對象 保存 匹配對象個數(img標籤) MatchCollection matches = regImg.Matches(htmlText); int i = 0; string[] sUrlList = new string[matches.Count]; //遍歷全部的img標籤對象 foreach (Match match in matches) { //獲取全部Img的路徑src,並保存到數組中 sUrlList[i++] = match.Groups["imgUrl"].Value; } return sUrlList; }